sublimehq / sublime_text

Issue tracker for Sublime Text
https://www.sublimetext.com
809 stars 39 forks source link

[ST4][macOS] subl command does not work when Sublime Text is open under another account #3376

Closed dangh closed 4 years ago

dangh commented 4 years ago

Description

when ST is running under another account, subl command failed to open file/folder and throwing error

$ /Applications/Sublime\ Text.app/Contents/SharedSupports/bin/subl ~/Desktop
Timeout waiting for detached instance to start: Permission denined

$ ls -al /private
total 0
drwxr-xr-x   6 root  wheel   192 May 28 22:31 .
drwxr-xr-x  22 root  admin   704 May 28 22:31 ..
drwxr-xr-x  86 root  wheel  2752 May 29 07:43 etc
drwxr-xr-x   2 root  wheel    64 Feb 29 14:55 tftpboot
drwxrwxrwt  10 root  wheel   320 May 30 15:17 tmp
drwxr-xr-x  27 root  wheel   864 May 28 22:32 var

$ ls -al /private/tmp
total 0
drwxrwxrwt  10 root        wheel  320 May 30 15:17 .
drwxr-xr-x   6 root        wheel  192 May 28 22:31 ..
srwxr-xr-x   1 dang        wheel    0 May 30 15:17 Sublime Text.4cff18d2bab96a93366319a9e0fa060d.sock
drwx------   3 choi        wheel   96 May 29 21:20 com.apple.launchd.AeLRXCEJX4
drwx------   3 dang        wheel   96 May 29 17:42 com.apple.launchd.tfL21k6ciD
srw-------   1 choi        wheel    0 May 30 04:08 drivefs_ipc.503
srw-------   1 choi        wheel    0 May 30 04:08 drivefs_ipc.503_shell
drwxr-xr-x   2 root        wheel   64 May 28 22:35 powerlog

$ su dang
$ rm /private/tmp/Sublime\ Text.4cff18d2bab96a93366319a9e0fa060d.sock
$ exit
$ /Applications/Sublime\ Text.app/Contents/SharedSupports/bin/subl ~/Desktop

As you see there's a socket under dang account. subl only works in this account. If I run it under choi account, it failed with the error above.

If I remove the socket file AND exit all ST instance, I can run subl command successfully.

Steps to reproduce

  1. Launch ST in the first account
  2. Login to the second account
  3. Run subl in the terminal: /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ~/Desktop

Expected behavior

ST open with the passed file/folder

Actual behavior

ST open with an empty window

Environment

BenjaminSchaaf commented 4 years ago

Could you post the console output from the launched ST instance?

dangh commented 4 years ago

@BenjaminSchaaf This is the log when I execute subl in the first account:

startup, version: 4074 osx x64 channel: dev
executable: /Applications/Sublime Text.app/Contents/MacOS/Sublime Text
working dir: /
packages path: /Users/dang/Library/Application Support/Sublime Text/Packages
state path: /Users/dang/Library/Application Support/Sublime Text/Local
zip path: /Applications/Sublime Text.app/Contents/MacOS/Packages
zip path: /Users/dang/Library/Application Support/Sublime Text/Installed Packages
ignored_packages: []
environment variables loaded using: /usr/local/bin/fish -l (1 skipped due to non-utf8 data)
pre session restore time: 0.302721
OpenGL Context Information:
  GL API Version: 4.1 INTEL-14.7.2
  GLSL Version: 4.10
  Vendor: Intel Inc.
  Renderer: Intel(R) UHD Graphics 630
startup time: 0.391502
first paint time: 0.405448
reloading plugin Default.arithmetic
reloading plugin Default.auto_indent_tag
reloading plugin Default.block
reloading plugin Default.colors
reloading plugin Default.comment
reloading plugin Default.convert_color_scheme
reloading plugin Default.convert_syntax
reloading plugin Default.copy_path
reloading plugin Default.echo
reloading plugin Default.exec
reloading plugin Default.fold
reloading plugin Default.font
reloading plugin Default.goto_line
reloading plugin Default.history_list
reloading plugin Default.indentation
reloading plugin Default.install_package_control
reloading python 3.3 plugin 0_package_control_loader.00-package_control
reloading python 3.3 plugin 0_package_control_loader.01-sublime_lib
reloading python 3.3 plugin 0_package_control_loader.50-pathlib
reloading python 3.3 plugin 0_package_control_loader.50-pyyaml
reloading python 3.3 plugin EditorConfig.EditorConfig
reloading python 3.3 plugin Package Control.1_reloader
reloading python 3.3 plugin Package Control.2_bootstrap
reloading plugin Default.kill_ring
reloading plugin Default.mark
reloading plugin Default.new_templates
reloading plugin Default.open_context_url
reloading plugin Default.open_in_browser
reloading plugin Default.pane
reloading plugin Default.paragraph
reloading plugin Default.paste_from_history
reloading plugin Default.profile
reloading plugin Default.quick_panel
reloading plugin Default.rename
reloading plugin Default.run_syntax_tests
reloading plugin Default.save_on_focus_lost
reloading plugin Default.scroll
reloading plugin Default.set_unsaved_view_name
reloading plugin Default.settings
reloading plugin Default.show_scope_name
reloading plugin Default.side_bar
reloading plugin Default.sort
reloading plugin Default.switch_file
reloading plugin Default.symbol
reloading plugin Default.transform
reloading plugin Default.transpose
reloading plugin Default.ui
reloading plugin CSS.css_completions
reloading plugin Diff.diff
reloading plugin HTML.encode_html_entities
reloading plugin HTML.html_completions
reloading plugin ShellScript.ShellScript
reloading plugin Vintage.vintage
reloading plugin Vintage.vintage_commands
reloading plugin Vintage.vintage_motions
reloading plugin A File Icon.plugin
reloading python 3.3 plugin Package Control.Package Control
reloading python 3.3 plugin PackageDev._logging
reloading python 3.3 plugin PackageDev.main
reloading python 3.3 plugin PackageResourceViewer.package_resource_viewer
reloading python 3.3 plugin PackageResourceViewer.package_resources
reloading python 3.3 plugin sublime-ecmascript.commands
reloading python 3.3 plugin sublime-sidebar-enhancements-debloat.SideBar
reloading python 3.3 plugin sublime-sidebar-enhancements-debloat.SideBarAPI
reloading python 3.3 plugin sublime-sidebar-enhancements-debloat.SideBarDefaultDisable
reloading python 3.3 plugin sublime-icon.icon
plugins loaded
Package Control: No updated packages

I switch to the second account and execute subl command. It failed. Then I switch to the first account. ST does not print any logs other than the above.

BenjaminSchaaf commented 4 years ago

You mention in the issue that the 2nd run of subl opens an empty window. What's the console output from that window?

dangh commented 4 years ago

Sorry for the late response. Here's the log as requested.

Unable to create unix socket: Permission denied
startup, version: 4074 osx x64 channel: dev
executable: /Applications/Sublime Text.app/Contents/MacOS/Sublime Text
working dir: /
packages path: /Users/choi/Library/Application Support/Sublime Text/Packages
state path: /Users/choi/Library/Application Support/Sublime Text/Local
zip path: /Applications/Sublime Text.app/Contents/MacOS/Packages
zip path: /Users/choi/Library/Application Support/Sublime Text/Installed Packages
ignored_packages: ["BetterFindBuffer"]
environment variables loaded using: /usr/local/bin/fish -l (1 skipped due to non-utf8 data)
pre session restore time: 0.433114
OpenGL Context Information:
  GL API Version: 4.1 INTEL-14.7.4
  GLSL Version: 4.10
  Vendor: Intel Inc.
  Renderer: Intel(R) UHD Graphics 630
startup time: 0.573242
first paint time: 0.593822
git: tracking working dir /Users/choi/Desktop/wip/choi
Error loading scope:source.glsl: Unable to find syntax file for scope source.glsl in Packages/sublime-ecmascript/ecmascript-js.sublime-syntax
reloading plugin Default.arithmetic
reloading plugin Default.auto_indent_tag
reloading plugin Default.block
reloading plugin Default.colors
reloading plugin Default.comment
reloading plugin Default.convert_color_scheme
reloading plugin Default.convert_syntax
reloading plugin Default.copy_path
reloading plugin Default.echo
reloading plugin Default.exec
reloading plugin Default.fold
reloading plugin Default.font
reloading plugin Default.goto_line
reloading plugin Default.history_list
reloading plugin Default.indentation
reloading plugin Default.install_package_control
reloading python 3.3 plugin 0_package_control_loader.00-package_control
reloading python 3.3 plugin 0_package_control_loader.01-sublime_lib
reloading python 3.3 plugin 0_package_control_loader.50-pathlib
reloading python 3.3 plugin 0_package_control_loader.50-pyyaml
reloading python 3.3 plugin 0_package_control_loader.55-jsonschema
reloading python 3.3 plugin EditorConfig.EditorConfig
reloading plugin Default.kill_ring
reloading python 3.3 plugin Package Control.1_reloader
reloading plugin Default.mark
reloading plugin Default.new_templates
reloading python 3.3 plugin Package Control.2_bootstrap
reloading plugin Default.open_context_url
reloading plugin Default.open_in_browser
reloading plugin Default.pane
reloading plugin Default.paragraph
reloading plugin Default.paste_from_history
reloading plugin Default.profile
reloading plugin Default.quick_panel
reloading plugin Default.rename
reloading plugin Default.run_syntax_tests
reloading plugin Default.save_on_focus_lost
reloading plugin Default.scroll
reloading plugin Default.set_unsaved_view_name
reloading plugin Default.settings
reloading plugin Default.show_scope_name
reloading plugin Default.side_bar
reloading plugin Default.sort
reloading plugin Default.switch_file
reloading plugin Default.symbol
reloading plugin Default.transform
reloading plugin Default.transpose
reloading plugin Default.ui
reloading plugin CSS.css_completions
reloading plugin Diff.diff
reloading plugin HTML.encode_html_entities
reloading plugin HTML.html_completions
reloading plugin ShellScript.ShellScript
reloading plugin Vintage.vintage
reloading plugin Vintage.vintage_commands
reloading plugin Vintage.vintage_motions
reloading plugin A File Icon.plugin
reloading python 3.3 plugin Package Control.Package Control
reloading python 3.3 plugin PackageDev._logging
reloading python 3.3 plugin PackageDev.main
reloading python 3.3 plugin PackageResourceViewer.package_resource_viewer
reloading python 3.3 plugin PackageResourceViewer.package_resources
reloading python 3.3 plugin sublime-ecmascript.commands
reloading python 3.3 plugin sublime-sidebar-enhancements-debloat.SideBar
reloading python 3.3 plugin sublime-sidebar-enhancements-debloat.SideBarAPI
reloading python 3.3 plugin sublime-sidebar-enhancements-debloat.SideBarDefaultDisable
reloading python 3.3 plugin SublimeLinter-eslint.linter
reloading python 3.3 plugin SublimeLinter.__init__
reloading python 3.3 plugin SublimeLinter.active_linters_view
reloading python 3.3 plugin SublimeLinter.busy_indicator_view
reloading python 3.3 plugin SublimeLinter.goto_commands
reloading python 3.3 plugin SublimeLinter.highlight_view
reloading python 3.3 plugin SublimeLinter.log_handler
reloading python 3.3 plugin SublimeLinter.message_view
reloading python 3.3 plugin SublimeLinter.panel_view
reloading python 3.3 plugin SublimeLinter.status_bar_view
reloading python 3.3 plugin SublimeLinter.sublime_linter
reloading python 3.3 plugin sublime-icon.icon
reloading python 3.3 plugin TypeScript.main
2020-06-11 01:00:51,125: 4657434048: WARNING: TypeScript plugin initialized.
plugins loaded
Package Control: Hit rate limit of 60 for api.github.com. Skipping all futher download requests for this domain.
Package Control: Rate limit of 60 exceeded for api.github.com
Package Control: Skipping due to hitting rate limit for api.github.com
Package Control: Skipping due to hitting rate limit for api.github.com
Package Control: No updated packages

The only diff is this line

Unable to create unix socket: Permission denied
BenjaminSchaaf commented 4 years ago

ST4 uses a unix domain socket in /tmp/Sublime Text.<hash>.sock to send command line arguments. Is the user choi able to write to /tmp/?

dangh commented 4 years ago

ST4 uses a unix domain socket in /tmp/Sublime Text.<hash>.sock to send command line arguments. Is the user choi able to write to /tmp/?

Yes. If I delete the socket created by the first user, I'm able to launch ST under choi and it will create the new socket properly.

wbond commented 4 years ago

@BenjaminSchaaf Perhaps we need to factor the username into the hash that is generated?

BenjaminSchaaf commented 4 years ago

Fixed in 4075