diff --git a/hail/python/hail/docs/change_log.md b/hail/python/hail/docs/change_log.md index 70e87e03db8..34d6ad76e5c 100644 --- a/hail/python/hail/docs/change_log.md +++ b/hail/python/hail/docs/change_log.md @@ -54,7 +54,7 @@ critically depend on experimental functionality.** ## Version 0.2.125 -Released 2023-10-25 +Released 2023-10-26 ### New Features @@ -100,6 +100,7 @@ Released 2023-10-25 - (hail#13894) Fix #13837 in which Hail could break a Spark installation if the Hail JAR appears on the classpath before the Scala JARs. +- (hail#13919) Fix #13915 which prevented using a glob pattern in `hl.import_vcf`. ## Version 0.2.124 diff --git a/hail/python/hailtop/utils/utils.py b/hail/python/hailtop/utils/utils.py index aa5deddcfe5..f161cc988cf 100644 --- a/hail/python/hailtop/utils/utils.py +++ b/hail/python/hailtop/utils/utils.py @@ -638,8 +638,7 @@ def is_transient_error(e: BaseException) -> bool: and e.args[0] == "Response payload is not completed"): return True if (isinstance(e, aiohttp.ClientOSError) - and len(e.args) >= 2 - and 'sslv3 alert bad record mac' in e.args[1]): + and 'sslv3 alert bad record mac' in e.strerror): # aiohttp.client_exceptions.ClientOSError: [Errno 1] [SSL: SSLV3_ALERT_BAD_RECORD_MAC] sslv3 alert bad record mac (_ssl.c:2548) # # This appears to be a symptom of Google rate-limiting as of 2023-10-15 diff --git a/hail/python/test/hail/conftest.py b/hail/python/test/hail/conftest.py index 1320b74bfef..933b522181c 100644 --- a/hail/python/test/hail/conftest.py +++ b/hail/python/test/hail/conftest.py @@ -9,6 +9,7 @@ from hail import current_backend, init, reset_global_randomness from hail.backend.service_backend import ServiceBackend +from hailtop.hail_event_loop import hail_event_loop from hailtop.utils import secret_alnum_string from .helpers import hl_init_for_test, hl_stop_for_test diff --git a/hail/src/main/scala/is/hail/backend/BackendServer.scala b/hail/src/main/scala/is/hail/backend/BackendServer.scala index d730ca67611..ad6fb5f0a75 100644 --- a/hail/src/main/scala/is/hail/backend/BackendServer.scala +++ b/hail/src/main/scala/is/hail/backend/BackendServer.scala @@ -2,6 +2,7 @@ package is.hail.backend import java.net.InetSocketAddress import java.nio.charset.StandardCharsets +import java.util.concurrent._ import com.sun.net.httpserver.{HttpContext, HttpExchange, HttpHandler, HttpServer} import org.json4s._ @@ -26,12 +27,22 @@ class BackendServer(backend: Backend) { // 0 => let the OS pick an available port private[this] val httpServer = HttpServer.create(new InetSocketAddress(0), 10) private[this] val handler = new BackendHttpHandler(backend) + private[this] val executor = Executors.newFixedThreadPool(1, + new ThreadFactory() { + private[this] val childFactory = Executors.defaultThreadFactory() + + def newThread(r: Runnable): Thread = { + val t = childFactory.newThread(r) + t.setDaemon(true) + t + } + }) def port = httpServer.getAddress.getPort def start(): Unit = { httpServer.createContext("/", handler) - httpServer.setExecutor(null) + httpServer.setExecutor(executor) httpServer.start() }