#941771 telegram-desktop wasn't starting due to bad symlink in ~/.pulse/

Package:
telegram-desktop
Source:
telegram-desktop
Description:
fast and secure messaging application
Submitter:
Michael Gurski
Date:
2019-10-05 05:27:04 UTC
Severity:
normal
#941771#5
Date:
2019-10-05 05:19:01 UTC
From:
To:
Dear Maintainer,

About a month ago, my laptop filesystem went ro, while running
telegram-desktop. After recovering, I could not get the desktop app
started again. Not errors, no icon in the tray, but the process was
running.

Having some time tonight, I decided to investigate further, and
eventually used strace to attach to the process to see if I could get
a clue as to what was happening. Sample output:

readlink("/home/user/.pulse/d4324f75c325ebe42dde7c3f508b808e-runtime", "/tmp/pulse-2L9K88eMlGn7", 99) = 23
lstat("/tmp/pulse-2L9K88eMlGn7", 0x7fff6765a770) = -1 ENOENT (No such file or directory)
umask(077)                              = 022
mkdir("/tmp/pulse-YUOLtz4cshqy", 0700)  = 0
umask(022)                              = 077
symlink("/tmp/pulse-YUOLtz4cshqy", "/home/user/.pulse/d4324f75c325ebe42dde7c3f508b808e-runtime.tmp") = -1 EEXIST (File exists)
rmdir("/tmp/pulse-YUOLtz4cshqy")        = 0
nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0
readlink("/home/user/.pulse/d4324f75c325ebe42dde7c3f508b808e-runtime", "/tmp/pulse-2L9K88eMlGn7", 99) = 23
lstat("/tmp/pulse-2L9K88eMlGn7", 0x7fff6765a770) = -1 ENOENT (No such file or directory)
umask(077)                              = 022
mkdir("/tmp/pulse-ChzttSCUoUtd", 0700)  = 0
umask(022)                              = 077
symlink("/tmp/pulse-ChzttSCUoUtd", "/home/user/.pulse/d4324f75c325ebe42dde7c3f508b808e-runtime.tmp") = -1 EEXIST (File exists)
rmdir("/tmp/pulse-ChzttSCUoUtd")        = 0
nanosleep({tv_sec=0, tv_nsec=10000000}, NULL) = 0

ls(1) showed the link existed and pointed to an invalid destination in
/tmp. After removing the bad link, telegram-desktop immediately
started up.

Perhaps on EEXIST, an attempt to rm the link, and not just
the target, could be made? This was an entirely non-obvious failure,
with literally no indication what the problem was until attaching to
the process.