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)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: LowPrio
Assignee: Bugzilla mail exporter
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-04-26 16:11 CEST by William Sjöblom
Modified: 2022-05-03 12:35 CEST (History)
0 users

See Also:
Acceptance Criteria:


Attachments

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 ( "127.0.0.1" , 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.

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