-
-
Notifications
You must be signed in to change notification settings - Fork 24
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
soft shutdown not working on macOS Sonoma 14.2.1 #77
Comments
Thanks for the report. Please do not execute BuKill as root. It's designed to spawn a very small child program as root to execute the shutdown. More info here |
The relevant error from you log is here
This is a security protection. BusKill refuses to try to execute a file as root if it's not owned by root, because then a malicious software with non-root privileges could edit the file and then wait for it to be executed as root to escalate their privileges to become root. buskill-app/src/packages/buskill/__init__.py Lines 631 to 686 in 53f631d
@samxplogs Can you please:
|
TODO:
|
Hello Michael, I have downloaded the dmg file buskill-mac-v0.7.0-x86_64.dmg ls -lah /Applications/buskill-v0.7.0.app/Contents/MacOS/ |
@samxplogs can you also please provide the numerical ids with
|
Hey @maltfield, here you go ls -lahn /Applications/buskill-v0.7.0.app/Contents/MacOS/ |
In the meantime, I tried sudo chown root:wheel [buskill-v0.7.0.app](http://buskill-v0.7.0.app) I browsed online and I have found that However it is still not working at that time. 23:11:56,959 root INFO =============================================================================== 23:11:56,992 packages.buskill INFO INFO: using DATA_DIR:|/Applications/.buskill| 23:11:57,8 kivy INFO [Logger ] Record log in /Applications/.buskill/logs/kivy_24-02-25_0.txt 23:45:39,454 packages.buskill INFO INFO: using DATA_DIR:|/Applications/.buskill| 23:45:39,462 kivy INFO [Logger ] Record log in /Applications/.buskill/logs/kivy_24-02-25_1.txt |
@samxplogs try setting the uid and gid to 0 Also, don't change the For example:
|
On our cloud mac mini, we have owner of I just did an install of the BusKill v0.7.0 app on our cloud mac mini. We have basically the same user owner (50X) as this report, but the group owner (for which this error is thrown) is different. OP has group owner
And we have
That explains why this didn't get detected in our tests. On our machine, my user buskill-app/src/packages/buskill/__init__.py Lines 682 to 686 in 53f631d
For reference, here's our full
|
@samxplogs could you please provide us some more info about your system's groups, so I can figure out the best approach to patch this? Please execute the following commands as your normal
I'll go first
Interesting to note: my user appears to be member of both |
Note: this is currently blocked by issue #78: |
Thanks, the following command fixed the permissions When I arm, I am prompted for my password and disconnecting the buskill volume triggered the shutdown seamlessly. Well done ! 🙏 |
Here the details about my groups: staff everyone localaccounts _appserverusr admin _appserveradm _lpadmin _appstore _lpoperator _developer _analyticsusers com.apple.access_ftp com.apple.access_screensharing-disabled com.apple.access_ssh com.apple.access_remote_ae com.apple.sharepoint.group.1 and output from cat /etc/group nobody::-2: |
Whaaaat? You're in the I'll work on a prerelease with better debug output that can hopefully explain what's going-on on your system..
It's a good workaround, but let's keep working to fix this so other users never encounter this bug ;) |
This commit also allows BusKill to launch the root_child process if it's owned by the 'admin' group (with gid=80). It appears that on some installs it gets owned by 'staff' and on others it gets owned by 'admin'. All users are already members of 'staff', so that's not a problem. But 'admin' is an even-more restrictive group, so it's actually safer to permit execution of a script as root that's owned by 'admin' than one that's owned by 'staff' This should help fix bug #77 * #77
This commit adds more debug output to tell us what user & group is currently executing BusKill and what are the permissions & owners on the root_child process. This can help resolve issues related to the permissions restrictions in-place when launching our root_child process as root, such as happened in bug #77: * #77
Update: The BusKill CI Builds are finally fixed, so I can finally return to this ticket and implement/test the above items |
I confirmed that #1 & #2 in the TODO list above are already done. To implement #4, I need to setup some sort of communication between the |
This commit attempts to improve the GUI's error reporting when it fails to spawn a root_child process. We're attempting to throw exceptions inside the buskill class, and attempting to catch them in the GUI scripts that call those functions. * #77 (comment)
I was successfully able to throw an exception in the buskill class and catch the exception & display it to the user in the GUI in the latest build Unfortunately, it still lets the user 'arm' after it tells the user that they couldn't set the trigger due to permissions errors. Worse, it tells the user in the app that it's armed with 'soft-shutdown'. This is a lie. It cannot trigger because there is now root_child process spawned. The best way to prevent this is to have some secondary check occur at the time that the user hits the "arm" button. Basically we should find a way to "ping" the root_child. If it doesn't "pong" back, then we should raise an error rather than let the user think that they're armed, when they're not. TODO: update the buskill class' |
update: I'm currently blocked again by this ticket: |
update: I fixed the builds dependency issue above |
I manually changed the permissions of the I manually changed the user owner of the I manually changed the group owner of the I manually moved the I removed the link, restored the file, and was successfully prompted for my password and able to return to the main screen without an error message. I was able to arm to the 'soft-shutdown' trigger without issues. Bonus: I restarted the app and tried to set the trigger to 'soft-shutdown' again. This time I cancelled the auth prompt to type my password. I confirmed that the UI properly displays the error returned by the OS upon leaving the Settings screen. |
I implemented a ping/pong function in the I just tested the latest build on our mac mini, and I confirmed that this is working
|
I disarmed buskill, then I
The app didn't arm (it stayed blue/disarmed), and I got an error message modal popup in the GUI that said
Success! This is important: the user is no longer given a false sense of security by telling them that the |
Ugh, I spoke too soon. It looks like there's another bug in our latest build that prevents the non-root-child-process (the one that listens to usb hotplug events) from executing
Worst of all, the GUI app changes to red, and it says "Armed". It's definitely not armed. Good news is that there is an |
Sigh, of course, in a GUI, this is more complicated than initially expected. The non-root-child process (referenced as In the example above, the parent is able to catch exceptions from the child, but only by wrapping a I could wait some amount of time after kicking-off the Edit: probably a better option than spawn-wait-then-check-for-exception would be to make the Bonus: have some timeout. Eg if we've been looping for 1 second and both instance fields are non-NULL, exit the loop, display an error, and leave the app disarmed. |
This commit adds a 'status' instance field to the multiprocessing.Process() child process, which starts-out at 0 and gets incremented by the child process at some unknown interval (actually its updated by the parent by listening to a 'ping' command placed into the queue by the child). This allows the parent to check-on the state of the child process after launching it, which is important because exceptions thrown by the child won't raise an exception up to the parent (we could catch it, but that would be blocking). This allows us to detect if there's issues immediately after the user clicks the "arm" button. After this commit, we can prevent the app from giving the user a false sense of security, because we'll throw an error on toggle() if the child isn't well and the GUI will remain blue/disarmed rather than saying it's armed (even if it can't possibly trigger because the child process has issues) * #77 (comment)
all right, I implemented ^ this idea. I tested it, and it appears to be working fine on Linux We added a new In the former case, we throw an error and the app stays disarmed/blue In the later, we continue with updating the app armed/red TODO test on macOS |
well, the latest build just locks-up the GUI after pressing the "Arm" button. And I didn't even get my debug log prints from inside the while loop, so it looks like it never made it that far. I'll have to add some more debug prints to figure out where it's failing. |
ok, I finally got the exception passing functional between the non-root child process and the main parent process's GUI. Here's what we needed in the end: |
Note: this issue is currently blocked by #87 I created a separate issue for resolving the |
Update: I fixed the |
I think the only thing remaining in this ticket (before testing) is to have the root_child harden its own owner permissions on first execution |
This commit adds a step to the start of the root_child_mac binary to harden the root_child_mac binary. Basically it's self-hardening The reason we do this is because (due to technical restrictions in .dmg files), we can't distribute a .dmg with a file that's owned by root. When the user first installs BusKill, the root_child_mac binary will be owned by their user. This isn't the worst thing in the world, and we do allow spawning a root_child process as root if it's owned by the current user. But, it's safer if it's owned by root:root, so we harden it the first time it launches. * #77 (comment)
I attempted to update the
So it's trying to set the permissions on
The file that it needs to harden is actually a binary named
The binary is created by |
ok, I went though the list of answers to this SE question How do I get the path and name of the python file that is currently executing?, and the only one that appears to meet our needs is
|
Excellent. I just tested the latest build, and it's successfully able to harden the Here's the file's permissions after arming with the
|
ok, I think we've implemented all the TODO items above, but I have one more item:
I've found that, when you first launch the BusKill app, if you click "arm" then it always arms with the 'lock-screen' trigger, even if the user set the tirgger to 'soft-shutdown'. Even when you go into Settings, 'soft-shudown' is shown as the current trigger, but you have to change it back to 'lock-screen' and then return it back to 'soft-shudown' before the app will arm it with the proper trigger |
This commit replaces the Config item name "buskill" with "buskill_trigger" Apparently I silently renamed this option in the Config file some months ago when I was switching the Settings screen to use RecycleView, for the font accessibility feature * #55 (comment) I don't know exactly why I made the change, but apparently I already updated it in other places, except here. The result: a bug where the first time you "arm" BusKill, it always defaulted to the 'lock-screen' trigger, instead of the setting the user already set it to. * #77 (comment)
I tested the latest build, and I confirmed that it arms with 'soft-shutdown' on first try after launching if 'soft-shutdown' was defined as the |
I believe that addresses all of the issues @samxplogs can you please download & install the latest prerelease build and test to see if you can reproduce this issue where soft shutdown does not work (or any other errors)? |
This is currently blocked by #91 |
Dear Team,
The soft shutdown is not working on macOS Sonoma 14.2.1
I am running buskill-v0.7.0 using root like this
sudo open "/Applications/buskill-v0.7.0.app"
Could you have a look ? Thanks
Here is the full debug log with several attempts
12:55:17,549 root INFO ===============================================================================
12:55:17,550 root INFO INFO: Writing to log file '/var/folders/yj/pv3cnb7d5c9_s1xdsg_ztvbh0000gn/T/buskill.log'
12:55:17,550 root DEBUG BUSKILL_VERSION|{'VERSION': 'v0.7.0', 'GITHUB_REF': 'refs/heads/v0.7.0', 'GITHUB_SHA': '4139a515ea941dba3fffe5714226b135569f46e2', 'SOURCE_DATE_EPOCH': '1687039680'}|
12:55:17,550 root DEBUG os.environ|environ({'USER': 'dh', 'COMMAND_MODE': 'unix2003', '__CFBundleIdentifier': 'buskill-v0.7.0', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'LOGNAME': 'dh', 'SSH_AUTH_SOCK': '/private/tmp/com.apple.launchd.HjiPsXX67p/Listeners', 'HOME': '/Users/dh', 'SHELL': '/bin/zsh', 'TMPDIR': '/var/folders/yj/pv3cnb7d5c9_s1xdsg_ztvbh0000gn/T/', '__CF_USER_TEXT_ENCODING': '0x1F5:0x0:0x0', 'XPC_SERVICE_NAME': 'application.buskill-v0.7.0.18450406.18450465', 'XPC_FLAGS': '0x0', 'KIVY_DATA_DIR': '/Applications/buskill-v0.7.0.app/Contents/MacOS/kivy_install/data', 'KIVY_MODULES_DIR': '/Applications/buskill-v0.7.0.app/Contents/MacOS/kivy_install/modules', 'GST_REGISTRY_FORK': 'no', 'GST_PLUGIN_PATH': '/Applications/buskill-v0.7.0.app/Contents/MacOS:/Applications/buskill-v0.7.0.app/Contents/MacOS/gst-plugins', 'GST_REGISTRY': '/Applications/buskill-v0.7.0.app/Contents/MacOS/registry.bin', 'GST_PLUGIN_SYSTEM_PATH': ''})|
12:55:17,550 root DEBUG sys.argv|['/Applications/buskill-v0.7.0.app/Contents/MacOS/buskill']|
12:55:17,550 root DEBUG sys.builtin_modules_names|('_abc', '_ast', '_codecs', '_collections', '_functools', '_imp', '_io', '_locale', '_operator', '_signal', '_sre', '_stat', '_string', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', 'atexit', 'builtins', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'posix', 'pwd', 'sys', 'time', 'xxsubtype', 'zipimport')|
12:55:17,550 root DEBUG sys.executable|/Applications/buskill-v0.7.0.app/Contents/MacOS/buskill|
12:55:17,550 root DEBUG sys.path|['/Applications/buskill-v0.7.0.app/Contents/MacOS/base_library.zip', '/Applications/buskill-v0.7.0.app/Contents/MacOS/lib-dynload', '/Applications/buskill-v0.7.0.app/Contents/MacOS']|
12:55:17,550 root DEBUG sys.prefix|/Applications/buskill-v0.7.0.app/Contents/MacOS|
12:55:17,550 root DEBUG sys.version|3.7.8 (default, Jul 4 2020, 10:17:17)
[Clang 11.0.3 (clang-1103.0.32.62)]|
12:55:17,550 root DEBUG sys.api_version|1013|
12:55:17,550 root DEBUG sys.version_info|sys.version_info(major=3, minor=7, micro=8, releaselevel='final', serial=0)|
12:55:17,550 root DEBUG name|main|
12:55:17,550 root DEBUG sys.platform|darwin|
12:55:17,573 root DEBUG platform.platform()|Darwin-23.2.0-x86_64-i386-64bit|
12:55:17,574 root DEBUG platform.system()|Darwin|
12:55:17,574 root DEBUG platform.release()|23.2.0|
12:55:17,574 root DEBUG platform.version()|Darwin Kernel Version 23.2.0: Wed Nov 15 21:53:34 PST 2023; root:xnu-10002.61.3
2/RELEASE_ARM64_T8103|2/RELEASE_ARM64_T8103', machine='x86_64', processor='i386')|12:55:17,574 root DEBUG platform.machine()|x86_64|
12:55:17,574 root DEBUG platform.uname()|uname_result(system='Darwin', node='Ss-MacBook-Air.local', release='23.2.0', version='Darwin Kernel Version 23.2.0: Wed Nov 15 21:53:34 PST 2023; root:xnu-10002.61.3
12:55:17,574 root DEBUG platform.mac_ver()|('10.16', ('', '', ''), 'x86_64')|
12:55:17,575 root INFO buskill version {'VERSION': 'v0.7.0', 'GITHUB_REF': 'refs/heads/v0.7.0', 'GITHUB_SHA': '4139a515ea941dba3fffe5714226b135569f46e2', 'SOURCE_DATE_EPOCH': '1687039680'}
12:55:17,575 packages.buskill DEBUG DEBUG: EXECUTED_AS_SCRIPT:|False|
DEBUG: EXE_PATH:|/Applications/buskill-v0.7.0.app/Contents/MacOS/buskill|
DEBUG: EXE_DIR:|/Applications/buskill-v0.7.0.app/Contents/MacOS|
DEBUG: EXE_FILE:|buskill|
DEBUG: APP_DIR:|/Applications/buskill-v0.7.0.app|
DEBUG: APPS_DIR:|/Applications|
DEBUG: SRC_DIR:|/Applications/buskill-v0.7.0.app/Contents/MacOS|
DEBUG: os.environ['PATH']:|/usr/bin:/bin:/usr/sbin:/sbin:/Applications/buskill-v0.7.0.app/Contents/MacOS:/Applications/buskill-v0.7.0.app|
12:55:17,576 packages.buskill INFO INFO: using DATA_DIR:|/Applications/.buskill|
12:55:17,577 packages.buskill DEBUG DEBUG: CONF_FILE:|/Applications/.buskill/config.ini|
12:55:17,590 kivy INFO [Logger ] Record log in /Applications/.buskill/logs/kivy_24-02-18_0.txt
12:55:17,589 kivy INFO [Kivy ] v1.11.1
12:55:17,590 kivy INFO [Kivy ] Installed at "/Applications/buskill-v0.7.0.app/Contents/MacOS/kivy/init.pyc"
12:55:17,590 kivy INFO [Python ] v3.7.8 (default, Jul 4 2020, 10:17:17)
[Clang 11.0.3 (clang-1103.0.32.62)]
12:55:17,590 kivy INFO [Python ] Interpreter at "/Applications/buskill-v0.7.0.app/Contents/MacOS/buskill"
12:55:17,636 kivy INFO [Factory ] 184 symbols loaded
12:55:17,921 kivy INFO [Image ] Providers: img_tex, img_imageio, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
12:55:18,142 kivy INFO [Window ] Provider: sdl2
12:55:19,146 kivy INFO [GL ] Using the "OpenGL ES 2" graphics system
12:55:19,147 kivy INFO [GL ] Backend used
12:55:19,148 kivy INFO [GL ] OpenGL version <b'2.1 Metal - 88'>
12:55:19,148 kivy INFO [GL ] OpenGL vendor <b'Apple'>
12:55:19,148 kivy INFO [GL ] OpenGL renderer <b'Apple M1'>
12:55:19,148 kivy INFO [GL ] OpenGL parsed version: 2, 1
12:55:19,148 kivy INFO [GL ] Shading version <b'1.20'>
12:55:19,149 kivy INFO [GL ] Texture max size <16384>
12:55:19,149 kivy INFO [GL ] Texture max units <16>
12:55:19,239 kivy INFO [Window ] auto add sdl2 input provider
12:55:19,358 kivy INFO [Window ] virtual keyboard not allowed, single mode, not docked
12:55:19,380 kivy INFO [Text ] Provider: sdl2
12:55:19,387 kivy INFO [Clipboard ] Provider: sdl2(['clipboard_nspaste'] ignored)
12:55:19,468 kivy INFO [GL ] NPOT texture support is available
12:55:19,519 buskill_gui DEBUG DEBUG: adding screen:||
12:55:19,520 buskill_gui DEBUG DEBUG: User switched to 'MainWindow' screen
12:55:19,520 buskill_gui DEBUG DEBUG: adding screen:||
12:55:19,520 buskill_gui DEBUG DEBUG: adding screen:||
12:55:19,650 kivy INFO [Base ] Start application main loop
12:55:24,319 buskill_gui DEBUG DEBUG: User switched to 'Settings' screen
12:55:26,317 buskill_gui DEBUG DEBUG: User switched to 'setting_trigger' screen
12:55:28,227 buskill_gui DEBUG DEBUG: Option already equals 'soft-shutdown'. Returning.
12:55:29,676 buskill_gui DEBUG DEBUG: User switched to 'Settings' screen
12:55:30,481 buskill_gui DEBUG DEBUG: User switched to 'MainWindow' screen
12:55:30,482 packages.buskill DEBUG DEBUG: Attempting to set 'trigger' set to 'soft-shutdown'
12:55:30,482 packages.buskill DEBUG DEBUG: Called spawn_root_child()
12:55:30,482 packages.buskill DEBUG DEBUG: No root_child detected. Attempting to spawn one.
12:55:30,482 packages.buskill INFO INFO: You have requested BusKill to do something that requires elevated privliges on your platform. If you'd like to proceed, please authorize BusKill to preform actions as Administrator. Your system may prompt you for your password to proceed.
12:55:30,482 packages.buskill DEBUG DEBUG: root_child_path:|/Applications/buskill-v0.7.0.app/Contents/MacOS/root_child_mac|
12:55:30,483 packages.buskill ERROR ERROR: root_child is not owned by gid=0 nor your group. Refusing to spawn script as root!
12:55:30,483 packages.buskill INFO INFO: BusKill 'trigger' set to 'soft-shutdown'
12:55:32,155 packages.buskill DEBUG DEBUG: attempting to arm BusKill via <bound method BusKill.armNix of <packages.buskill.BusKill object at 0x10b063dd0>>() with the 'soft-shutdown' trigger
12:55:32,168 kivy WARNING stderr: [DEBUG/MainProcess] created semlock with handle 22
12:55:32,178 kivy WARNING stderr: [DEBUG/MainProcess] created semlock with handle 23
12:55:32,179 kivy WARNING stderr: [DEBUG/MainProcess] created semlock with handle 25
12:55:32,179 kivy WARNING stderr: [DEBUG/MainProcess] Queue._after_fork()
12:55:32,182 packages.buskill DEBUG DEBUG:getstate() pre:dict_keys(['CURRENT_PLATFORM', 'KERNEL_VERSION', 'IS_PLATFORM_SUPPORTED', 'OS_NAME_SHORT', 'ERR_PLATFORM_NOT_SUPPORTED', 'ARM_FUNCTION', 'DISARM_FUNCTION', 'TRIGGER_FUNCTION', 'SIMULATE_HOTPLUG_REMOVAL', 'EXECUTED_AS_SCRIPT', 'LOG_FILE_PATH', 'EXE_PATH', 'EXE_DIR', 'EXE_FILE', 'APP_DIR', 'APPS_DIR', 'SRC_DIR', 'DATA_DIR', 'CACHE_DIR', 'CONF_FILE', 'GNUPGHOME', 'UPGRADED_FROM', 'UPGRADED_TO', 'root_child', 'is_armed', 'usb_handler', 'usb_handler_queue', 'upgrade_status_msg', 'upgrade_result', 'trigger', 'SUPPORTED_TRIGGERS', 'trigger_softshutdown_lin_shutdown_path', 'trigger_softshutdown_lin_poweroff_path', 'trigger_softshutdown_lin_systemctl_path', 'url_website', 'url_documentation', 'url_documentation_contribute', 'url_documentation_bug_report', 'url_documentation_gui'])|
12:55:32,182 packages.buskill DEBUG DEBUG:getstate() post:|dict_keys(['CURRENT_PLATFORM', 'KERNEL_VERSION', 'IS_PLATFORM_SUPPORTED', 'OS_NAME_SHORT', 'ERR_PLATFORM_NOT_SUPPORTED', 'ARM_FUNCTION', 'DISARM_FUNCTION', 'TRIGGER_FUNCTION', 'SIMULATE_HOTPLUG_REMOVAL', 'EXECUTED_AS_SCRIPT', 'LOG_FILE_PATH', 'EXE_PATH', 'EXE_DIR', 'EXE_FILE', 'APP_DIR', 'APPS_DIR', 'SRC_DIR', 'DATA_DIR', 'CACHE_DIR', 'CONF_FILE', 'GNUPGHOME', 'UPGRADED_FROM', 'UPGRADED_TO', 'is_armed', 'usb_handler_queue', 'upgrade_status_msg', 'upgrade_result', 'trigger', 'SUPPORTED_TRIGGERS', 'trigger_softshutdown_lin_shutdown_path', 'trigger_softshutdown_lin_poweroff_path', 'trigger_softshutdown_lin_systemctl_path', 'url_website', 'url_documentation', 'url_documentation_contribute', 'url_documentation_bug_report', 'url_documentation_gui'])|
12:55:32,190 packages.buskill INFO INFO: BusKill is armed. Listening for removal event.
INFO: To disarm the CLI, exit with ^C or close this terminal
12:55:32,512 root INFO ===============================================================================
12:55:32,512 root INFO ===============================================================================
12:55:32,512 root INFO INFO: Writing to log file '/var/folders/yj/pv3cnb7d5c9_s1xdsg_ztvbh0000gn/T/buskill.log'
12:55:32,512 root INFO INFO: Writing to log file '/var/folders/yj/pv3cnb7d5c9_s1xdsg_ztvbh0000gn/T/buskill.log'
12:55:32,512 root DEBUG BUSKILL_VERSION|{'VERSION': 'v0.7.0', 'GITHUB_REF': 'refs/heads/v0.7.0', 'GITHUB_SHA': '4139a515ea941dba3fffe5714226b135569f46e2', 'SOURCE_DATE_EPOCH': '1687039680'}|
12:55:32,512 root DEBUG BUSKILL_VERSION|{'VERSION': 'v0.7.0', 'GITHUB_REF': 'refs/heads/v0.7.0', 'GITHUB_SHA': '4139a515ea941dba3fffe5714226b135569f46e2', 'SOURCE_DATE_EPOCH': '1687039680'}|
12:55:32,512 root DEBUG os.environ|environ({'USER': 'dh', 'COMMAND_MODE': 'unix2003', '__CFBundleIdentifier': 'buskill-v0.7.0', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin:/Applications/buskill-v0.7.0.app/Contents/MacOS:/Applications/buskill-v0.7.0.app', 'LOGNAME': 'dh', 'SSH_AUTH_SOCK': '/private/tmp/com.apple.launchd.HjiPsXX67p/Listeners', 'HOME': '/Users/dh', 'SHELL': '/bin/zsh', 'TMPDIR': '/var/folders/yj/pv3cnb7d5c9_s1xdsg_ztvbh0000gn/T/', '__CF_USER_TEXT_ENCODING': '0x1F5:0x0:0x0', 'XPC_SERVICE_NAME': '0', 'XPC_FLAGS': '0x0', 'KIVY_DATA_DIR': '/Applications/buskill-v0.7.0.app/Contents/MacOS/kivy_install/data', 'KIVY_MODULES_DIR': '/Applications/buskill-v0.7.0.app/Contents/MacOS/kivy_install/modules', 'GST_REGISTRY_FORK': 'no', 'GST_PLUGIN_PATH': '/Applications/buskill-v0.7.0.app/Contents/MacOS:/Applications/buskill-v0.7.0.app/Contents/MacOS/gst-plugins', 'GST_REGISTRY': '/Applications/buskill-v0.7.0.app/Contents/MacOS/registry.bin', 'GST_PLUGIN_SYSTEM_PATH': '', 'DYLD_FALLBACK_LIBRARY_PATH': '/Applications/buskill-v0.7.0.app/Contents/MacOS', 'KIVY_HOME': '/Applications/.buskill'})|
12:55:32,512 root DEBUG os.environ|environ({'USER': 'dh', 'COMMAND_MODE': 'unix2003', '__CFBundleIdentifier': 'buskill-v0.7.0', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin:/Applications/buskill-v0.7.0.app/Contents/MacOS:/Applications/buskill-v0.7.0.app', 'LOGNAME': 'dh', 'SSH_AUTH_SOCK': '/private/tmp/com.apple.launchd.HjiPsXX67p/Listeners', 'HOME': '/Users/dh', 'SHELL': '/bin/zsh', 'TMPDIR': '/var/folders/yj/pv3cnb7d5c9_s1xdsg_ztvbh0000gn/T/', '__CF_USER_TEXT_ENCODING': '0x1F5:0x0:0x0', 'XPC_SERVICE_NAME': '0', 'XPC_FLAGS': '0x0', 'KIVY_DATA_DIR': '/Applications/buskill-v0.7.0.app/Contents/MacOS/kivy_install/data', 'KIVY_MODULES_DIR': '/Applications/buskill-v0.7.0.app/Contents/MacOS/kivy_install/modules', 'GST_REGISTRY_FORK': 'no', 'GST_PLUGIN_PATH': '/Applications/buskill-v0.7.0.app/Contents/MacOS:/Applications/buskill-v0.7.0.app/Contents/MacOS/gst-plugins', 'GST_REGISTRY': '/Applications/buskill-v0.7.0.app/Contents/MacOS/registry.bin', 'GST_PLUGIN_SYSTEM_PATH': '', 'DYLD_FALLBACK_LIBRARY_PATH': '/Applications/buskill-v0.7.0.app/Contents/MacOS', 'KIVY_HOME': '/Applications/.buskill'})|
12:55:32,512 root DEBUG sys.argv|['/Applications/buskill-v0.7.0.app/Contents/MacOS/buskill', '--multiprocessing-fork', 'tracker_fd=24', 'pipe_handle=30']|
12:55:32,512 root DEBUG sys.argv|['/Applications/buskill-v0.7.0.app/Contents/MacOS/buskill', '-B', '-S', '-E', '-s', '-c', 'from multiprocessing.semaphore_tracker import main;main(23)']|
12:55:32,512 root DEBUG sys.builtin_modules_names|('_abc', '_ast', '_codecs', '_collections', '_functools', '_imp', '_io', '_locale', '_operator', '_signal', '_sre', '_stat', '_string', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', 'atexit', 'builtins', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'posix', 'pwd', 'sys', 'time', 'xxsubtype', 'zipimport')|
12:55:32,512 root DEBUG sys.builtin_modules_names|('_abc', '_ast', '_codecs', '_collections', '_functools', '_imp', '_io', '_locale', '_operator', '_signal', '_sre', '_stat', '_string', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', 'atexit', 'builtins', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'posix', 'pwd', 'sys', 'time', 'xxsubtype', 'zipimport')|
12:55:32,512 root DEBUG sys.executable|/Applications/buskill-v0.7.0.app/Contents/MacOS/buskill|
12:55:32,513 root DEBUG sys.executable|/Applications/buskill-v0.7.0.app/Contents/MacOS/buskill|
12:55:32,513 root DEBUG sys.path|['/Applications/buskill-v0.7.0.app/Contents/MacOS/base_library.zip', '/Applications/buskill-v0.7.0.app/Contents/MacOS/lib-dynload', '/Applications/buskill-v0.7.0.app/Contents/MacOS']|
12:55:32,513 root DEBUG sys.path|['/Applications/buskill-v0.7.0.app/Contents/MacOS/base_library.zip', '/Applications/buskill-v0.7.0.app/Contents/MacOS/lib-dynload', '/Applications/buskill-v0.7.0.app/Contents/MacOS']|
12:55:32,513 root DEBUG sys.prefix|/Applications/buskill-v0.7.0.app/Contents/MacOS|
12:55:32,513 root DEBUG sys.prefix|/Applications/buskill-v0.7.0.app/Contents/MacOS|
12:55:32,513 root DEBUG sys.version|3.7.8 (default, Jul 4 2020, 10:17:17)
[Clang 11.0.3 (clang-1103.0.32.62)]|
12:55:32,513 root DEBUG sys.version|3.7.8 (default, Jul 4 2020, 10:17:17)
[Clang 11.0.3 (clang-1103.0.32.62)]|
12:55:32,513 root DEBUG sys.api_version|1013|
12:55:32,513 root DEBUG sys.api_version|1013|
12:55:32,513 root DEBUG sys.version_info|sys.version_info(major=3, minor=7, micro=8, releaselevel='final', serial=0)|
12:55:32,513 root DEBUG sys.version_info|sys.version_info(major=3, minor=7, micro=8, releaselevel='final', serial=0)|
12:55:32,513 root DEBUG name|main|
12:55:32,513 root DEBUG name|main|
12:55:32,513 root DEBUG sys.platform|darwin|
12:55:32,513 root DEBUG sys.platform|darwin|
12:55:32,530 root DEBUG platform.platform()|Darwin-23.2.0-x86_64-i386-64bit|
12:55:32,530 root DEBUG platform.platform()|Darwin-23.2.0-x86_64-i386-64bit|
12:55:32,531 root DEBUG platform.system()|Darwin|
12:55:32,531 root DEBUG platform.system()|Darwin|
12:55:32,531 root DEBUG platform.release()|23.2.0|
12:55:32,531 root DEBUG platform.release()|23.2.0|
12:55:32,531 root DEBUG platform.version()|Darwin Kernel Version 23.2.0: Wed Nov 15 21:53:34 PST 2023; root:xnu-10002.61.3
2/RELEASE_ARM64_T8103|2/RELEASE_ARM64_T8103|12:55:32,531 root DEBUG platform.version()|Darwin Kernel Version 23.2.0: Wed Nov 15 21:53:34 PST 2023; root:xnu-10002.61.3
12:55:32,531 root DEBUG platform.machine()|x86_64|
12:55:32,531 root DEBUG platform.machine()|x86_64|
12:55:32,531 root DEBUG platform.uname()|uname_result(system='Darwin', node='Ss-MacBook-Air.local', release='23.2.0', version='Darwin Kernel Version 23.2.0: Wed Nov 15 21:53:34 PST 2023; root:xnu-10002.61.3
2/RELEASE_ARM64_T8103', machine='x86_64', processor='i386')|2/RELEASE_ARM64_T8103', machine='x86_64', processor='i386')|12:55:32,531 root DEBUG platform.uname()|uname_result(system='Darwin', node='Ss-MacBook-Air.local', release='23.2.0', version='Darwin Kernel Version 23.2.0: Wed Nov 15 21:53:34 PST 2023; root:xnu-10002.61.3
12:55:32,531 root DEBUG platform.mac_ver()|('10.16', ('', '', ''), 'x86_64')|
12:55:32,531 root DEBUG platform.mac_ver()|('10.16', ('', '', ''), 'x86_64')|
12:55:32,553 packages.buskill DEBUG DEBUG: called hotplugCallbackNix()
12:55:32,554 packages.buskill DEBUG context:|<usb1.USBContext object at 0x10ab0c150>|
12:55:32,554 packages.buskill DEBUG device:|Bus 000 Device 005: ID 2109:8817|
12:55:32,554 packages.buskill DEBUG event:|1|
12:55:32,554 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_ARRIVED:|1|
12:55:32,554 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_LEFT:|2|
12:55:32,554 packages.buskill DEBUG DEBUG: called hotplugCallbackNix()
12:55:32,554 packages.buskill DEBUG context:|<usb1.USBContext object at 0x10ab0c150>|
12:55:32,554 packages.buskill DEBUG device:|Bus 000 Device 004: ID 0bda:8153|
12:55:32,554 packages.buskill DEBUG event:|1|
12:55:32,554 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_ARRIVED:|1|
12:55:32,554 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_LEFT:|2|
12:55:32,554 packages.buskill DEBUG DEBUG: called hotplugCallbackNix()
12:55:32,554 packages.buskill DEBUG context:|<usb1.USBContext object at 0x10ab0c150>|
12:55:32,554 packages.buskill DEBUG device:|Bus 000 Device 003: ID 21c4:8005|
12:55:32,554 packages.buskill DEBUG event:|1|
12:55:32,554 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_ARRIVED:|1|
12:55:32,554 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_LEFT:|2|
12:55:32,554 packages.buskill DEBUG DEBUG: called hotplugCallbackNix()
12:55:32,554 packages.buskill DEBUG context:|<usb1.USBContext object at 0x10ab0c150>|
12:55:32,554 packages.buskill DEBUG device:|Bus 000 Device 002: ID 2109:0817|
12:55:32,554 packages.buskill DEBUG event:|1|
12:55:32,554 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_ARRIVED:|1|
12:55:32,554 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_LEFT:|2|
12:55:32,555 packages.buskill DEBUG DEBUG: called hotplugCallbackNix()
12:55:32,555 packages.buskill DEBUG context:|<usb1.USBContext object at 0x10ab0c150>|
12:55:32,555 packages.buskill DEBUG device:|Bus 000 Device 001: ID 2109:2817|
12:55:32,555 packages.buskill DEBUG event:|1|
12:55:32,555 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_ARRIVED:|1|
12:55:32,555 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_LEFT:|2|
12:55:37,754 packages.buskill DEBUG DEBUG: called hotplugCallbackNix()
12:55:37,754 packages.buskill DEBUG context:|<usb1.USBContext object at 0x10ab0c150>|
12:55:37,755 packages.buskill DEBUG device:|Bus 000 Device 003: ID 21c4:8005|
12:55:37,755 packages.buskill DEBUG event:|2|
12:55:37,756 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_ARRIVED:|1|
12:55:37,757 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_LEFT:|2|
12:55:37,757 packages.buskill INFO INFO: Detected USB removal event
12:55:37,757 packages.buskill DEBUG calling <bound method BusKill.triggerMac of <packages.buskill.BusKill object at 0x10adfa190>>
12:55:37,773 packages.buskill ERROR DEBUG: Queue message from child usb_handler (trigger)
12:55:37,774 packages.buskill DEBUG DEBUG: BusKill soft-shutdown trigger executing now
12:55:37,774 packages.buskill DEBUG DEBUG: Attempting to send 'soft-shutdown' command to root child
12:55:37,779 packages.buskill ERROR ERROR: Failed to send 'soft-shutdown' command to root child
'NoneType' object is not subscriptable
12:55:42,684 packages.buskill DEBUG DEBUG: called hotplugCallbackNix()
12:55:42,685 packages.buskill DEBUG context:|<usb1.USBContext object at 0x10ab0c150>|
12:55:42,686 packages.buskill DEBUG device:|Bus 000 Device 003: ID 21c4:8005|
12:55:42,686 packages.buskill DEBUG event:|1|
12:55:42,686 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_ARRIVED:|1|
12:55:42,686 packages.buskill DEBUG usb1.HOTPLUG_EVENT_DEVICE_LEFT:|2|
12:55:46,326 buskill_gui DEBUG DEBUG: User switched to 'DebugLog' screen
The text was updated successfully, but these errors were encountered: