Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker calls may hang forever #21672

Closed
philwebb opened this issue Jun 3, 2020 · 1 comment
Closed

Docker calls may hang forever #21672

philwebb opened this issue Jun 3, 2020 · 1 comment
Assignees
Labels
type: bug A general bug
Milestone

Comments

@philwebb
Copy link
Member

philwebb commented Jun 3, 2020

Thanks to @bsideup for pointing this one out. We need to do something similar to docker-java/docker-java#1408 in the Boot code.

@philwebb philwebb added this to the 2.3.x milestone Jun 3, 2020
@philwebb philwebb added the type: bug A general bug label Jun 3, 2020
@bsideup
Copy link
Contributor

bsideup commented Jun 3, 2020

The relevant part:
https://github.com/spring-projects/spring-boot/blob/v2.3.0.RELEASE/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/socket/NamedPipeSocket.java

which matches the code we had in docker-java and should be straightforward to change to AsynchronousFileChannel instead of (blocking) RandomAccessFile

@scottfrederick scottfrederick self-assigned this Jun 9, 2020
@philwebb philwebb modified the milestones: 2.3.x, 2.3.1 Jun 11, 2020
scottfrederick added a commit to scottfrederick/spring-boot that referenced this issue Jun 11, 2020
This commit changes the NamedPipeSocket used for communication with
a local Docker daemon to use a non-blocking AsynchronousByteChannel
instead of a blocking RandomAccessFile, modeled after a similar
change to the docker-java project. This eliminates the potential for
a blocking call to hang indefinitely.

Fixes spring-projectsgh-21672
scottfrederick added a commit to scottfrederick/spring-boot that referenced this issue Jun 11, 2020
This commit changes the NamedPipeSocket used for communication with
a local Docker daemon to use a non-blocking AsynchronousByteChannel
instead of a blocking RandomAccessFile, modeled after a similar
change to the docker-java project. This eliminates the potential for
a blocking call to hang indefinitely.

Fixes spring-projectsgh-21672
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug A general bug
Projects
None yet
Development

No branches or pull requests

3 participants