Ghidra Server timeout
See original GitHub issueI’m having some trouble running the Ghidra server on a VPS I have (an OpenVZ one).
The server starts, then just times out. If I increase the timeout to something like hours, I can use the server for that period of time without any problems (so it doesn’t look like server load or memory problems, the VPS is doing literally nothing else), everything seems to work great on the Ghidra side, but I’d love to be able to run this without having to set a timeout of days, if possible. I’m adding my log here to see if it shows something, although I can’t really see anything interesting.
Also, my server.conf
is the stock one, I haven’t changed anything although I’ve tried disabling the “fork hack” and running as another user (I’m running as root now). I also don’t have SELinux enabled.
Thanks in advance.
12865/0|[INFO] StandardFileSystemManager - Using "/tmp/vfs_cache" as temporary files store.
12865/0|INFO Using log config file: jar:file:/root/ghidra_9.0/Ghidra/Framework/Generic/lib/Generic.jar!/generic.log4j.xml (LoggingInitialization)
12865/0|INFO Using log file: /root/ghidra_9.0/repositories/server.log (LoggingInitialization)
12865/0|INFO Initializing SSL Context (SSLContextInitializer)
12865/0|INFO Initializing Random Number Generator... (SecureRandomFactory)
12865/0|INFO Random Number Generator initialization complete: NativePRNGNonBlocking (SecureRandomFactory)
12865/0|INFO Trust manager disabled, cacerts have not been set (ApplicationTrustManagerFactory)
12865/0|INFO Using self-signed certificate: CN=GhidraServer (ApplicationKeyManagerFactory$ApplicationKeyManager)
12865/0|INFO defaultsigkey: GhidraServer, issued by GhidraServer, S/N 165cf7e8, expires Sun Mar 14 06:43:27 EDT 2021 (ApplicationKeyStore)
12865/0|INFO Ghidra Server 9.0 (GhidraServer)
12865/0|INFO Server bound to XX.XX.XX.XX (GhidraServer)
12865/0|INFO RMI Registry port: 13100 (GhidraServer)
12865/0|INFO RMI SSL port: 13101 (GhidraServer)
12865/0|INFO Block Stream port: 13102 (GhidraServer)
12865/0|INFO Block Stream compression: enabled (GhidraServer)
12865/0|INFO Root: ./repositories (GhidraServer)
12865/0|INFO Auth: Password File (GhidraServer)
12865/0|INFO Prompt for user ID: no (GhidraServer)
12865/0|INFO Anonymous server access: disabled (GhidraServer)
12865/0|INFO root starting Ghidra Server... (GhidraServer)
12865/0|INFO Instantiating Repository Manager for /root/ghidra_9.0/repositories (RepositoryManager)
12865/0|INFO Instantiating User Manager (w/password management) (UserManager)
12865/0|INFO User file contains 2 entries (UserManager)
12865/0|INFO Known Users: (UserManager)
12865/0|INFO test (UserManager)
12865/0|INFO arcnor (UserManager)
12865/0|INFO Known Repositories: (RepositoryManager)
12865/0|INFO TEstingRepo (RepositoryManager)
12865/0|INFO Loading TEstingRepo ... (Repository)
12865/0|INFO ... loading 0 files ... (Repository)
12865/0|INFO TEstingRepo load complete. (Repository)
12865/0|INFO Started Block Stream Server on XX.XX.XX.XX:13102 (BlockStreamServer)
12865/0|INFO Registering Ghidra Server... (GhidraServer)
12865/0|INFO Registered Ghidra Server. (GhidraServer)
12865/0|startup of java application timed out. if this is due to server overload consider increasing wrapper.startup.timeout
wrapper|Shutting down Wrapper
12865/0|no connection to wrapper during 10 seconds -> System.exit(-1)
12865/0|if this is due to server overload consider increasing yajsw configuration property wrapper.startup.timeout
wrapper|waitpid 12865 65280
wrapper|exit code posix process: 65280 application(status/signal): 255/0
Issue Analytics
- State:
- Created 5 years ago
- Comments:7
For me, I had to set the correct RMI hostname in the arguments. Finally dug around a bit through the logs and saw RMI was involved (le sigh) and the horrors of past RMI dealings came rushing back…
EDIT: in general, im pretty confident sayings that: the system must have a hostname that is sensible to the client (cant yet figure out if either simple hostname or the FQDN hostname must make sense), and im pretty sure the IP the hostname resolves to (and binds to) must also be sensible to the client. I know RMI does this (it assumes that sending hostname and/or IP over the wire is a sane thing to do), and guessing there might be something else in YAJSW also doing this.
Closing this question out due to inactivity. We can reopen it if there is still a need.