Bug 7900 - tl-mount-localdrives may hang in certain situations
Summary: tl-mount-localdrives may hang in certain situations
Status: NEW
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Local drive redirection (show other bugs)
Target Milestone: LowPrio
Assignee: Bugzilla mail exporter
Depends on:
Reported: 2022-04-26 16:11 CEST by William Sjöblom
Modified: 2023-10-25 11:22 CEST (History)
3 users (show)

See Also:
Acceptance Criteria:


Description William Sjöblom cendio 2022-04-26 16:11:02 CEST
Running the ThinLinc 4.14.0 server on a SLES12 VM I managed to get tl-mount-localdrives to hang during session startup. This issue seems very racy and temperamental as I've had a hard time reproducing it. Nonetheless, out of sheer luck, I managed to reproduce it while running inside of pdb and managed to obtain the following stack trace:

> (Pdb) bt
>   /usr/lib64/python3.4/runpy.py(170)_run_module_as_main()
> -> "__main__", mod_spec)
>   /usr/lib64/python3.4/runpy.py(85)_run_code()
> -> exec(code, run_globals)
>   /usr/lib64/python3.4/pdb.py(1688)<module>()
> -> pdb.main()
>   /usr/lib64/python3.4/pdb.py(1661)main()
> -> pdb._runscript(mainpyfile)
>   /usr/lib64/python3.4/pdb.py(1542)_runscript()
> -> self.run(statement)
>   /usr/lib64/python3.4/bdb.py(431)run()
> -> exec(cmd, globals, locals)
>   <string>(1)<module>()
>   /opt/thinlinc/bin/tl-mount-localdrives(9)<module>()
> -> if 82 - 82: Iii1i
>   /opt/thinlinc/bin/tl-mount-localdrives(327)OoOOooO0oOO0Oo()
> -> oo00 = OoOo ( "" , i1iIIi1I1iiI )
>   /opt/thinlinc/bin/tl-mount-localdrives(97)__init__()
> -> self . mountcl . null ( )
>   /opt/thinlinc/bin/tl-mount-localdrives(71)null()
> -> self . make_call ( mount_const . MOUNTPROC3_NULL )
>   /opt/thinlinc/bin/tl-mount-localdrives(61)make_call()
> -> Iio0 , i1i = self . pipe . listen ( oOoo0 )
>   /opt/thinlinc/modules/thinlinc/rpc/rpc.py(375)listen()
> -> self._pending[xid].wait(timeout)
>   /opt/thinlinc/modules/thinlinc/rpc/rpc.py(150)wait()
> -> self._filled.wait(timeout)
>   /usr/lib64/python3.4/threading.py(546)wait()
> -> signaled = self._cond.wait(timeout)
> > /usr/lib64/python3.4/threading.py(290)wait()
> -> waiter.acquire()

The issue was observed with a fresh ThinLinc install on an otherwise clean system. Looking at the client and xinit logs, nothing looks out of the ordinary.
Comment 1 Robert Henschel cendio 2023-09-08 22:00:32 CEST
I see the same issue. I have seen the issue on TL 4.14 (client and server) as well as TL 4.15 (client and server).
I am connecting to an number of systems, including the IU Research Desktop installation, the Cendio HPC installion on prem (tl.hpc.cendio.se), the Cendio general ThinLinc system (tl.cendio.se) as well as a system in the Oracle cloud and one that I maintain myself in AWS.

Only the tl.cendio.se system shows the isue with not being able to map storage. My client is Ubuntu 22.04.3 LTS.

Happy to provide more info as needed.
Comment 2 Linn cendio 2023-09-15 17:04:48 CEST
I got this issue again on SLES 12, and I saw that I had a bad/broken symlink to thindrives/ in my home directory after closing down the hanged session. Unfortunately, I did not inspect the symlink in more detail, I only noticed that it looked weird when running 'ls'.

The faulty symlink was probably set up before the client hanged, which might be a clue to where in the mounting this bug happens.

Note You need to log in before you can comment on or make changes to this bug.