Newly created directories in 'Application Support/Air Labs/' non-executable (fails to start)


#1

[ Please fill the details below. Feel free to remove square bracketed text. ]

  • Operating System (Platform and Version): OSX 10.10.5 - CASE SENSITIVE FS
  • App version (at Preferences > About)

Expected Behavior
Starts

Actual behavior
Fails to start even after deleting “Air Labs” and “Aether”

The problem is fixed if I go into ‘Air Labs’ dir and manually chmod a+x everything. So it looks like the mkdir function is wrong on OSX.

notgay:~ user$ rm -rf '/Users/user/Library/Application Support/Air Labs/'
notgay:~ user$ rm -rf '/Users/user/Library/Application Support/Aether'
notgay:~ user$ /Applications/Aether.app/Contents/MacOS/Aether
Checking for update
Generated new staging user ID: 50cb9c8a-52a8-54aa-a6a5-ce4e8d08ce8d
Update for version 2.0.0-dev.11 is not available (latest version: 2.0.0-dev.11+1902221558.a6b3c4a8, downgrade is disallowed).
ipc client api server port:  55217
Frontend daemon starting
fepath
/Applications/Aether.app/Contents/Resources/app/aether-frontend-mac-x64
Checking for update
Update for version 2.0.0-dev.11 is not available (latest version: 2.0.0-dev.11+1902221558.a6b3c4a8, downgrade is disallowed).
2019/03/01 08:57:15 Frontend KV store could not be opened. Error was: open /Users/user/Library/Application Support/Air Labs/Aether/frontend/KVStore.kv: permission denied
2019/03/01 08:57:15
STACK TRACE
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/services/logging/logging.go:73
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/services/logging/logging.go:82
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/frontend/kvstore/kvstore.go:40
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/frontend/fecmd/run.go:47
/Users/Helios/Dropbox/GoProjects/pkg/mod/github.com/spf13/cobra@v0.0.3/command.go:766

2019/03/01 08:57:15 Frontend KV store could not be opened. Error was: open /Users/user/Library/Application Support/Air Labs/Aether/frontend/KVStore.kv: permission denied

Frontend process exited with code 1 and signal null
We will reattempt to start the frontend daemon in 10 seconds.
Attempting to restart the frontend now.
55217
{ FrontendReady: false,
  FrontendAPIPort: 0,
  FrontendClientConnInitialised: false,
  ClientAPIServerPort: 55217,
  FrontendDaemonStarted: false,
  RendererReady: true,
  FrontendDaemon:
   ChildProcess {
     domain: null,
     _events: { exit: [Function] },
     _eventsCount: 1,
     _maxListeners: undefined,
     _closesNeeded: 3,
     _closesGot: 3,
     connected: false,
     signalCode: null,
     exitCode: 1,
     killed: false,
     spawnfile: '/Applications/Aether.app/Contents/Resources/app/aether-frontend-mac-x64',
     _handle: null,
     spawnargs:
      [ '/Applications/Aether.app/Contents/Resources/app/aether-frontend-mac-x64',
        'run',
        '--isdev=false',
        '--clientip=127.0.0.1',
        '--clientport=55217' ],
     pid: 3774,
     stdin:
      Socket {
        connecting: false,
        _hadError: false,
        _handle: null,
        _parent: null,
        _host: null,
        _readableState: [Object],
        readable: false,
        domain: null,
        _events: [Object],
        _eventsCount: 2,
        _maxListeners: undefined,
        _writableState: [Object],
        writable: false,
        allowHalfOpen: false,
        _bytesDispatched: 0,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: null,
        _server: null,
        write: [Function: writeAfterFIN],
        _idleNext: null,
        _idlePrev: null,
        _idleTimeout: -1,
        [Symbol(asyncId)]: 86,
        [Symbol(bytesRead)]: 0 },
     stdout:
      Socket {
        connecting: false,
        _hadError: false,
        _handle: null,
        _parent: null,
        _host: null,
        _readableState: [Object],
        readable: false,
        domain: null,
        _events: [Object],
        _eventsCount: 4,
        _maxListeners: undefined,
        _writableState: [Object],
        writable: false,
        allowHalfOpen: false,
        _bytesDispatched: 0,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: null,
        _server: null,
        read: [Function],
        _consuming: true,
        _idleNext: null,
        _idlePrev: null,
        _idleTimeout: -1,
        write: [Function: writeAfterFIN],
        [Symbol(asyncId)]: 87,
        [Symbol(bytesRead)]: 0 },
     stderr:
      Socket {
        connecting: false,
        _hadError: false,
        _handle: null,
        _parent: null,
        _host: null,
        _readableState: [Object],
        readable: false,
        domain: null,
        _events: [Object],
        _eventsCount: 4,
        _maxListeners: undefined,
        _writableState: [Object],
        writable: false,
        allowHalfOpen: false,
        _bytesDispatched: 0,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: null,
        _server: null,
        read: [Function],
        _consuming: true,
        _idleNext: null,
        _idlePrev: null,
        _idleTimeout: -1,
        write: [Function: writeAfterFIN],
        [Symbol(asyncId)]: 88,
        [Symbol(bytesRead)]: 912 },
     stdio: [ [Object], [Object], [Object] ] },
  AppIsShuttingDown: false }
Frontend daemon starting
fepath
/Applications/Aether.app/Contents/Resources/app/aether-frontend-mac-x64
2019/03/01 08:57:25
STACK TRACE
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/services/logging/logging.go:73
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/frontend/fecmd/root.go:49
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/frontend/fecmd/run.go:45
/Users/Helios/Dropbox/GoProjects/pkg/mod/github.com/spf13/cobra@v0.0.3/command.go:766
/Users/Helios/Dropbox/GoProjects/pkg/mod/github.com/spf13/cobra@v0.0.3/command.go:852

2019/03/01 08:57:25 Front-end configuration file is corrupted. Please fix the configuration file, or delete it. If deleted a new configuration will be generated with default values. Error: &json.SyntaxError{msg:"unexpected end of JSON input", Offset:0}, ConfigJson: ""

Frontend process exited with code 1 and signal null
We will reattempt to start the frontend daemon in 10 seconds.
^Cnotgay:~ user$

To Reproduce
[ What’s the best way to make this bug show up? Please tell the steps needed in as much detail as possible to replicate the issue. ]

Screenshots
[ If applicable, add screenshots to help explain your problem. ]

Additional Information
[ Add any other context about the problem here. ]

[ Thank you! ]


#2

Thanks for reporting. This is a recent change that got reverted because it was causing permissions issues on some older versions of Mac OS, and I think, some Linux distros. The next release will have the revert in place. Seems you’ve already found the issue though. The permissions had moved from 0755 to 0644, now it’s back to 0755 again.


#3

I actually just pushed a new build: dev.11+1903010147.3fd391a3.

You should be able to grab it from the website (you might need to clear your caches to get the new version). Let me know if that solves your problem.


#4

Seems not, I just restarted it and it seems to have pulled your build…

notgay:~ user$ rm ~/Library/Application\ Support/Air\ Labs/ -rf
notgay:~ user$ /Applications/Aether.app/Contents/MacOS/Aether
Checking for update
Update for version 2.0.0-dev.11 is not available (latest version: 2.0.0-dev.11+1903010147.3fd391a3, downgrade is disallowed).
ipc client api server port:  58192
Frontend daemon starting
fepath
/Applications/Aether.app/Contents/Resources/app/aether-frontend-mac-x64
Checking for update
Update for version 2.0.0-dev.11 is not available (latest version: 2.0.0-dev.11+1903010147.3fd391a3, downgrade is disallowed).
2019/03/01 11:28:25 Frontend KV store could not be opened. Error was: open /Users/user/Library/Application Support/Air Labs/Aether/frontend/KVStore.kv: permission denied
2019/03/01 11:28:25
STACK TRACE
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/services/logging/logging.go:73

#5

Did you delete or mark executable any files left from the old version?


#6

Does this count ^^ ?


#7

Yes, also do the same thing to ~/Library/Caches/ Air\ Labs


#8

Ok done

Still seems to be a problem

notgay:~ user$
notgay:~ user$ rm ~/Library/Application\ Support/Air\ Labs/ -rf
notgay:~ user$ rm ~/Library/Caches/Air\ Labs/ -rf
notgay:~ user$ /Applications/Aether.app/Contents/MacOS/Aether
Checking for update
ipc client api server port:  52481
Frontend daemon starting
fepath
/Applications/Aether.app/Contents/Resources/app/aether-frontend-mac-x64
2019/03/01 20:50:05 Frontend KV store could not be opened. Error was: open /Users/user/Library/Application Support/Air Labs/Aether/frontend/KVStore.kv: permission denied
2019/03/01 20:50:05
STACK TRACE
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/services/logging/logging.go:73
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/services/logging/logging.go:82
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/frontend/kvstore/kvstore.go:40
/Users/Helios/Dropbox/Aether_Catchall/Aether_Main_Repo/Aether_2/aether-core/aether/frontend/fecmd/run.go:47
/Users/Helios/Dropbox/GoProjects/pkg/mod/github.com/spf13/cobra@v0.0.3/command.go:766

2019/03/01 20:50:05 Frontend KV store could not be opened. Error was: open /Users/user/Library/Application Support/Air Labs/Aether/frontend/KVStore.kv: permission denied

Frontend process exited with code 1 and signal null
We will reattempt to start the frontend daemon in 10 seconds.
Update for version 2.0.0-dev.11 is not available (latest version: 2.0.0-dev.11+1903010147.3fd391a3, downgrade is disallowed).

#9

Very interesting. My main computer is mac as well, (and I develop Aether on a mac), so I tried this on my machine (latest Mojave, non-case-sensitive). I can’t replicate it. So this error in a case sensitive file system happens when a program is designed in a case insensitive file system without a care for casing, and then ported to a case sensitive file system.

But that is not the case, not only I did care a lot about that (since I knew that’s a bug that can happen), the app also runs fine on Linux, which is case-sensitive-only, with the exact same source code. So this isn’t really related to Aether’s code, and more about the environment. It’s not about case sensitivity either, since the same source code runs fine on a different, also case sensitive OS. And if it was a ‘can’t find file because it’s capitalised’ kind of thing, it would say ‘not found’ not ‘permission denied’. So it can find the file just fine as well. It’s likely there’s something that interacts with a subtle case sensitivity bug where the file can be created and read, but permissions can’t be set right.

Out of curiosity, why are you running a very old version of Mac OS on a case-sensitive file system? HFS+ with case sensitivity enabled is known to cause a lot of problems in otherwise functioning systems.


#10

Ping me on tomesh chat, if I can get access to your sources I can probably find the issue pretty quick between grep and dtruss


#11

(We discussed this and this issue ended up being a fluke due to an update not having been applied)