Skip to content

"<wallet_name>.jmdat cannot be created/opened, it is locked" upon attempted unlock of a wallet in the UI (v0.4.1) #178

@gStart9

Description

@gStart9

Due to recent Tor bugfixes, clients below 0.4.8.22 are having trouble connecting to directory servers to get a list of tor nodes:

2026-01-30T12:40:31+01:00  ==> /var/log/jam/tor_stdout.log <==
2026-01-30T12:40:31+01:00  Jan 30 11:40:29.406 [notice] Tor 0.4.8.19 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.0.17, Zlib 1.2.13, Liblzma 5.4.1, Libzstd 1.5.4 and Glibc 2.36 as libc.
2026-01-30T12:40:31+01:00  Jan 30 11:40:29.406 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://support.torproject.org/faq/staying-anonymous/
2026-01-30T12:40:31+01:00  Jan 30 11:40:29.406 [notice] Read configuration file "/etc/tor/torrc".
2026-01-30T12:40:31+01:00  Jan 30 11:40:29.408 [notice] Opening Socks listener on 127.0.0.1:9050
2026-01-30T12:40:31+01:00  Jan 30 11:40:29.408 [notice] Opened Socks listener connection (ready) on 127.0.0.1:9050
2026-01-30T12:40:31+01:00  Jan 30 11:40:29.408 [notice] Opening Control listener on 127.0.0.1:9051
2026-01-30T12:40:31+01:00  Jan 30 11:40:29.408 [notice] Opened Control listener connection (ready) on 127.0.0.1:9051

2026-01-30T12:40:35+01:00  ==> /var/log/jam/obwatch_stdout.log <==
...
2026-02-02T12:26:22+01:00  Unhandled error in Deferred:
2026-02-02T12:26:22+01:00  
2026-02-02T12:26:22+01:00  Traceback (most recent call last):
2026-02-02T12:26:22+01:00  --- <exception caught here> ---
2026-02-02T12:26:22+01:00  File "/usr/local/lib/python3.11/dist-packages/twisted/internet/defer.py", line 1075, in _runCallbacks
2026-02-02T12:26:22+01:00  current.result = callback( # type: ignore[misc]
2026-02-02T12:26:22+01:00  File "/src/src/jmdaemon/onionmc.py", line 613, in respond_to_connection_failure
2026-02-02T12:26:22+01:00  super().respond_to_connection_failure(failure)
2026-02-02T12:26:22+01:00  File "/src/src/jmdaemon/onionmc.py", line 531, in respond_to_connection_failure
2026-02-02T12:26:22+01:00  failure.trap(HostUnreachableError, SocksError, GeneralServerFailureError)
2026-02-02T12:26:22+01:00  File "/usr/local/lib/python3.11/dist-packages/twisted/python/failure.py", line 481, in trap
2026-02-02T12:26:22+01:00  self.raiseException()
2026-02-02T12:26:22+01:00  File "/usr/local/lib/python3.11/dist-packages/twisted/python/failure.py", line 505, in raiseException
2026-02-02T12:26:22+01:00  raise self.value.with_traceback(self.tb)
2026-02-02T12:26:22+01:00  File "/usr/local/lib/python3.11/dist-packages/txtorcon/socks.py", line 751, in connect
2026-02-02T12:26:22+01:00  proto = yield proxy_ep.connect(socks_factory)
2026-02-02T12:26:22+01:00  twisted.internet.error.TimeoutError: User timeout caused connection failure.
2026-02-02T12:26:22+01:00  
2026-02-02T12:37:00+01:00  dinit: Service jmwalletd terminated due to signal 9
2026-02-02T12:37:06+01:00  
2026-02-02T12:37:06+01:00  ==> /var/log/jam/tor_stdout.log <==
2026-02-02T12:37:06+01:00  Feb 02 11:37:05.000 [warn] Unable to find any hidden service associated identity key VWTVnHV3/Y+XS4A9fZ1NAALbj0e68NXS6d9tgJRWkPE on rendezvous circuit 3332656152.
2026-02-02T12:37:07+01:00  Feb 02 11:37:06.000 [warn] Unable to find any hidden service associated identity key VWTVnHV3/Y+XS4A9fZ1NAALbj0e68NXS6d9tgJRWkPE on rendezvous circuit 4137598494.
2026-02-02T12:37:08+01:00  Feb 02 11:37:07.000 [warn] Unable to find any hidden service associated identity key VWTVnHV3/Y+XS4A9fZ1NAALbj0e68NXS6d9tgJRWkPE on rendezvous circuit 4205772348.
2026-02-02T12:37:08+01:00  Feb 02 11:37:07.000 [warn] Unable to find any hidden service associated identity key VWTVnHV3/Y+XS4A9fZ1NAALbj0e68NXS6d9tgJRWkPE on rendezvous circuit 2282699735.
2026-02-02T12:37:08+01:00  Feb 02 11:37:07.000 [warn] Unable to find any hidden service associated identity key VWTVnHV3/Y+XS4A9fZ1NAALbj0e68NXS6d9tgJRWkPE on rendezvous circuit 2656300402.
2026-02-02T12:37:10+01:00  Feb 02 11:37:10.000 [warn] Unable to find any hidden service associated identity key VWTVnHV3/Y+XS4A9fZ1NAALbj0e68NXS6d9tgJRWkPE on rendezvous circuit 2433946416.

I believe it's the jmwalletd dinit service's reliance on the dinit tor service that's been sigkilling jmwalletd before closing the jmdat wallet, resulting in the jam web interface displaying the following error when trying to unlock a wallet:
<wallet_name>.jmdat cannot be created/opened, it is locked.

Restarting the jam service (on StartOS) solves the issue as the lock is cleaned up at startup, and I suspect upgrading to Tor 0.4.8.22 would obviate the bug, but whatever exactly is causing this issue seems to be a deeper jam-docker bug. Maybe something needs to be added to the jmwalletd dinit file that will clean the lock up on restart?

We're working with our end user who reported this issue to get the dinit services' status the next time this happens, in case that helps.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions