Interesting. Looks like there is a shell entry in the Makefile and Docker Desktop is hung.
Restarting docker engine frees the pipe.
Mystery solved.
❯ lsof -c make
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
make 99480 pan_and_scan cwd DIR 1,4 1312 137640208 /Users/pan_and_scan/repos/dlr/mercury
make 99480 pan_and_scan txt REG 1,4 436000 394462061 /Applications/Xcode.app/Contents/Developer/usr/bin/make
make 99480 pan_and_scan 0u CHR 16,4 0t1117558 1467 /dev/ttys004
make 99480 pan_and_scan 1 PIPE 0xe7c678c3a315df77 16384 ->0x38f87768519d5616
make 99480 pan_and_scan 2u CHR 16,4 0t1117558 1467 /dev/ttys004
make 99480 pan_and_scan 3r REG 1,4 8265 445364825 /Users/pan_and_scan/repos/dlr/mercury/Makefile
make 99480 pan_and_scan 4 PIPE 0x478605bcbc5309bf 16384 ->0x53f5a15df6bf83c7
❯ lsof | rg 0x478605bcbc5309bf
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
make 99480 pan_and_scan 4 PIPE 0x478605bcbc5309bf 16384 ->0x53f5a15df6bf83c7
docker 99487 pan_and_scan 1 PIPE 0x53f5a15df6bf83c7 16384 ->0x478605bcbc5309bf
docker 99487 pan_and_scan 4 PIPE 0x478605bcbc5309bf 16384 ->0x53f5a15df6bf83c7
com.docke 99488 pan_and_scan 1 PIPE 0x53f5a15df6bf83c7 16384 ->0x478605bcbc5309bf
com.docke 99488 pan_and_scan 4 PIPE 0x478605bcbc5309bf 16384 ->0x53f5a15df6bf83c7
❯ lsof | rg 0xe7c678c3a315df77
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Python 99479 pan_and_scan 3 PIPE 0x38f87768519d5616 16384 ->0xe7c678c3a315df77
Python 99479 pan_and_scan 5 PIPE 0xe7c678c3a315df77 16384 ->0x38f87768519d5616
make 99480 pan_and_scan 1 PIPE 0xe7c678c3a315df77 16384 ->0x38f87768519d5616
Python 99481 pan_and_scan 0 PIPE 0x38f87768519d5616 16384 ->0xe7c678c3a315df77
Post
Replies
Boosts
Views
Activity
Another note: It looks like both the script failure above and the make failures occur at the same time although not sure how they would be connected.
Here is the output:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
make 29609 pan_and_scan cwd DIR 1,4 1280 137640208 /Users/pan_and_scan/repos/me/myrepo
make 29609 pan_and_scan txt REG 1,4 436000 394462061 /Applications/Xcode.app/Contents/Developer/usr/bin/make
make 29609 pan_and_scan 0u CHR 16,4 0t475564 1241 /dev/ttys004
make 29609 pan_and_scan 1u CHR 16,4 0t475564 1241 /dev/ttys004
make 29609 pan_and_scan 2u CHR 16,4 0t475564 1241 /dev/ttys004
make 29609 pan_and_scan 3r REG 1,4 8265 445364825 /Users/pan_and_scan/repos/me/myrepo/Makefile
make 29609 pan_and_scan 4 PIPE 0x679b693239084285 16384 ->0x113baff81831caff
The example above appears to work fine.
It could be related to the specific file descriptor as you mentioned above.
Additional information:
It works correctly for some period of time after reboot.
Once it gets in to this situation, the only way to clear it is to reboot.
Appears to also occur with Homebrew gmake.
I'm also see an issue where a service I have created to write output to a file on a regular interval also timeout.
Here is the service definition and the script to reproduce:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.stonehengelabs.pan_and_scan.update_status</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin</string>
</dict>
<key>Program</key>
<string>/Users/pan_and_scan/bin/update_status.sh</string>
<key>StartInterval</key>
<integer>1</integer>
</dict>
</plist>
#!/bin/sh
# --------------------------------------------------
# Docker Machine Configuration
# --------------------------------------------------
function docker_status() {
# --------------------------------------------------
# Minikube Configuration
# --------------------------------------------------
local DOCKER_SOURCE=`kubectl config get-contexts --no-headers=true | grep '^*'| awk '{print $2}'`
# --------------------------------------------------
# Print running docker processes
# --------------------------------------------------
echo "===========================================================" > ~/.data/docker_status.md
echo "Docker Status - ${DOCKER_SOURCE} - $(date)" >> ~/.data/docker_status.md
echo "===========================================================" >> ~/.data/docker_status.md
/Applications/Docker.app/Contents/Resources/bin/docker stack services atlantis 2>&1 >> ~/.data/docker_status.md
}
# cat ~/.data/docker_status.md
##################################################
# Export Status
##################################################
docker_status
Hardware information:
15-inch 2018
Processor: 2.2 GHz 6-Core Intel Core i7
Graphics: Radeon Pro 555X 4 GB Intel UHD Graphics 630 1536 MB
Memory: 32 GB 2400 MHz DDR4