Closed
Bug 253835
Opened 21 years ago
Closed 17 years ago
thunderbird loops forever reading a FIFO signature file
Categories
(Thunderbird :: Message Compose Window, defect)
Tracking
(Not tracked)
People
(Reporter: ka0ttic, Unassigned)
Details
(Keywords: crash, hang)
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040626 Firefox/0.9.1
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040626 Firefox/0.9.1
When setting your signature file to a named pipe (FIFO), Thunderbird crashes
when opening a new compose window (when it attempts to open the signature file).
Running strace on thunderbird while this happens, shows that it's calling
lseek(). which of course, you cannot do on a pipe.
There are quite a few random signature generators out there that use named pipes
(including the one I am coding for the hell of it ;p), so it'd be a shame if
this wasn't fixed.
Reproducible: Always
Steps to Reproduce:
1. mkfifo ~/.signature
2. fortune > ~/.signature
3. make sure signature file option in thunderbird is set to fifo
4. open compose window
Actual Results:
Thunderbird totally freezes. Responds to SIGTERM, however.
Expected Results:
Opened signature file (fifo), read til EOF, close()
And of course, not crashing.
I'd post all the strace output, but my ~10s trace results in a ~24M file!
# grep -A5 -B5 ".signature" thunderbird.strace
43797 read(31, "Generated File. Do not edit.\n\n[H"..., 65) = 65
43798 close(31) = 0
43799 access("/home/ka0ttic/.mozilla", F_OK) = 0
43800 access("/home/ka0ttic/.mozilla/plugins", F_OK) = -1 ENOENT (No such file
or directory)
43801 access("/opt/thunderbird/plugins", F_OK) = -1 ENOENT (No such file or
directory)
43802 stat64("/home/ka0ttic/.signature", {st_mode=S_IFIFO|0600, st_size=0,
...}) = 0
43803 stat64("/home/ka0ttic/.signature", {st_mode=S_IFIFO|0600, st_size=0,
...}) = 0
43804 open("/home/ka0ttic/.signature", O_RDONLY|O_LARGEFILE) = 31
43805 lseek(31, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
43806 stat64("/home/ka0ttic/.signature", {st_mode=S_IFIFO|0600, st_size=0,
...}) = 0
43807 close(31) = 0
43808 stat64("/home/ka0ttic/.signature", {st_mode=S_IFIFO|0600, st_size=0,
...}) = 0
43809 open("/home/ka0ttic/.signature", O_RDONLY|O_LARGEFILE) = 31
43810 lseek(31, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
43811 lseek(31, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
43812 lseek(31, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
43813 lseek(31, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
43814 lseek(31, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
| Reporter | ||
Comment 1•21 years ago
|
||
Err, forgot: using thunderbird 0.7.1
Comment 2•21 years ago
|
||
Aaron: Could you provide TalkBack incident ID?
Severity: normal → critical
Keywords: crash
| Reporter | ||
Comment 3•21 years ago
|
||
Adam,
Tell me how to do so, and I'd be glad to.
Cheers
Comment 4•21 years ago
|
||
Talkback is a component of Mozilla Thunderbird which, when installed,
automatically comes up after a Thunderbird crash and asks you to send some data
to Mozilla.
To use Talkback:
- you must download a talkback-enabled build (offical builds from Mozilla.org)
- you must have selected talkback for install at install time
- you must enable it after a crash (it is then waiting in the task bar)
- you must click at submit button to send the report, or cancel to not send.
When a report is send, the server sends back a talkback ID. You can see this id,
if you start talkback in your Thunderbird components directory. You can do so,
while Thunderbird is running, and give this number here in a comment.
| Reporter | ||
Comment 5•21 years ago
|
||
> To use Talkback:
> - you must download a talkback-enabled build (offical builds from Mozilla.org)
> - you must have selected talkback for install at install time
> - you must enable it after a crash (it is then waiting in the task bar)
> - you must click at submit button to send the report, or cancel to not send.
I've tried countless times to get this to work, but to no avail. The only thing
I can think of is #3 above "you must enable it after a crash (it is then waiting
in the task bar)". I have no task bar (not everyone has a taskbar), so maybe
thats it?
Comment 6•21 years ago
|
||
would need to convert this code from using a file spec based input stream (which
does all those seeks) to an nsILocalFile based input stream, which shouldn't do
seeks...
Assignee: mscott → bienvenu
Status: UNCONFIRMED → NEW
Ever confirmed: true
Still interested in the talkback? I compiled from
thunderbird-source-0.8.tar.bz2, but I couldn't see anything about talkback. Is
there an option somewhere?
Anyway, anybody should be able to see the behaviour. Just make a fifo and point
your sig at it. Its happened with every version of mozilla and thunderbird that
I've used... at least for as many as I've bothered checking to see if its fixed
or not!
Comment 8•21 years ago
|
||
*** This bug has been marked as a duplicate of 259482 ***
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → DUPLICATE
iaindb@netspace.net.au: you can't build talkback. build --disable-optimize,
don't strip symbols, run w/ ./thunderbird -g -d gdb
run
(wait for crash)
where
info threads
thread <fromlist>
where
i don't think this is a valid duplicate
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Comment 10•21 years ago
|
||
> I've tried countless times to get this to work, but to no avail. The only thing
> I can think of is #3 above "you must enable it after a crash (it is then waiting
> in the task bar)". I have no task bar (not everyone has a taskbar), so maybe
> thats it?
They were assuming, regardless of your UA string, that you are using windows.
TalkBack is a proprietary (Netscape owned, I believe) program that only runs on
windows. It's a shame, really. I suppose that a similar program could be made
using gdb and something a simple as a perl script to send it to a server, but I
don't forsee that happening anytime soon.
By the way, I don't see how this is related to bug 259482. This is related to
thunderbid trying to seek in a fifo, while 259482 is related to reading a file
with a certain format of name.
Comment 11•21 years ago
|
||
Kris Maglione: Talkback (or Mozilla Quality Feedback Agent) is proprietary, but
great program running also on Linux and Mac OS X. You have to select it in
Custom instalation, otherwise it isn't installed.
Comment 12•21 years ago
|
||
(In reply to comment #11)
> Kris Maglione: Talkback (or Mozilla Quality Feedback Agent) is proprietary, but
> great program running also on Linux and Mac OS X. You have to select it in
> Custom instalation, otherwise it isn't installed.
Sorry, then. I searched for a linux version previously and couldn't find it. I'm
guessing, then, that you have to use the linux binary installer. Am I correct? I
have never seen the option in a build or package install. Is there a way to
include it in a custom build?
Comment 13•21 years ago
|
||
Talkback in custom build isn't usefull - it doesn't export symbols of this build
to Talkbak server. If you wanna take advantages of Talkback, you have to use
official build. As Window user I'm not sure in which Linux package variants is
Talkback included, but you can always look to components subdirectory for
anything named "talkback".
Comment 14•21 years ago
|
||
As much as I hate adding a "Me Too" comment. I think it is worth pointing out
that this is still happening in the 1.0 released version for Linux. I'd like to
second the comment that some of us use signature generation programs.
If it weren't for the fact that I had gone through quite a bit of effort to
convert my Sylpheed mailboxes over to Thunderbird, I might have gone right back
to Sylpheed when the Compose window locked up the program. I finally tracked it
to this issue as well.
Comment 15•20 years ago
|
||
This still happens with the latest Thunderbird 1.5beta1.
Comment 16•20 years ago
|
||
Still happens in RC1 (20051201)...
I should also mention that Thunderbird doesn't actually *crash* but seems to enter an infinite loop, so there's no TalckBack incident created.
Anybody?
Updated•20 years ago
|
Flags: blocking1.8.0.1?
Comment 17•20 years ago
|
||
this is not something we are going to address for the security release.
Flags: blocking1.8.0.1? → blocking1.8.0.1-
Comment 18•20 years ago
|
||
> this is not something we are going to address for the security release.
This is something you should've addressed for 1.8
Comment 19•19 years ago
|
||
For the record, this is still happening in 1.5.0.8 (20061107). Here's the relevant part of my strace.
stat64("/home/utoddl/.signature", {st_mode=S_IFIFO|0644, st_size=0, ...}) = 0
open("/home/utoddl/.signature", O_RDONLY|O_LARGEFILE) = 35
lseek(35, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
_llseek(35, 0, 0xbfa1f0b8, SEEK_CUR) = -1 ESPIPE (Illegal seek)
_llseek(35, 0, 0xbfa1f0b8, SEEK_CUR) = -1 ESPIPE (Illegal seek)
_llseek(35, 0, 0xbfa1f0b8, SEEK_CUR) = -1 ESPIPE (Illegal seek)
_llseek(35, 0, 0xbfa1f0b8, SEEK_CUR) = -1 ESPIPE (Illegal seek)
_llseek(35, 0, 0xbfa1f0b8, SEEK_CUR) = -1 ESPIPE (Illegal seek)
_llseek(35, 0, 0xbfa1f0b8, SEEK_CUR) = -1 ESPIPE (Illegal seek)
_llseek(35, 0, 0xbfa1f0b8, SEEK_CUR) = -1 ESPIPE (Illegal seek)
[...repeats the above line forever...]
Comment 20•19 years ago
|
||
todd_lewis@unc.edu: thanks for volunteering
please read, and *FOLLOW* the directions in Comment 9.
Assignee: bienvenu → todd_lewis
Status: REOPENED → NEW
Comment 21•19 years ago
|
||
(In reply to comment #20)
> todd_lewis@unc.edu: thanks for volunteering
> please read, and *FOLLOW* the directions in Comment 9.
>
timelesss, Thunderbird doesn't crash, it just enters a infinite loop... look at the strace outputs.
Comment 22•19 years ago
|
||
(In reply to comment #20)
> todd_lewis@unc.edu: thanks for volunteering
> please read, and *FOLLOW* the directions in Comment 9.
You're welcome. It doesn't crash, so the "wait for crash" step in Comment 9 takes too long (like, forever).
But since you asked so nicely, I do have a stack backtrace for you. Behold:
(gdb) bt
#0 0x00e59402 in ?? ()
#1 0x0011b4e4 in lseek64 () from /lib/libpthread.so.0
#2 0x00c9f498 in PR_Now () from /usr/lib/libnspr4.so
#3 0x00c9cde2 in PR_GetConnectStatus () from /usr/lib/libnspr4.so
#4 0x00c825c9 in PR_Seek64 () from /usr/lib/libnspr4.so
#5 0x002d2bfb in FileImpl::Tell (this=0xa2aaa40, outWhere=0xbf98ee04)
at nsIFileStream.cpp:502
#6 0x002d1eaa in nsRandomAccessStoreClient::tell (this=0xbf98ee84)
at nsFileStream.h:406
#7 0x002d11d6 in nsRandomAccessInputStream::readline (this=0xbf98ee64,
s=0xbf98ee8c "\fZ,", n=512) at nsFileStream.cpp:231
#8 0x025479f1 in nsMsgI18NParseMetaCharset (fileSpec=0xbf98f3b8)
at nsMsgI18N.cpp:339
#9 0x02669ba8 in nsMsgCompose::LoadDataFromFile (this=0xa247d48,
fSpec=@0xbf98f3b8, sigData=@0xbf98f300) at nsMsgCompose.cpp:3385
#10 0x0266a78c in nsMsgCompose::ProcessSignature (this=0xa247d48,
identity=0x9a9d688, aQuoted=0, aMsgBody=0xbf98f4cc)
at nsMsgCompose.cpp:3554
#11 0x0266990d in nsMsgCompose::BuildBodyMessageAndSignature (this=0xa247d48)
at nsMsgCompose.cpp:3658
#12 0x02669780 in nsMsgCompose::InitEditor (this=0xa247d48, aEditor=0xa258248,
aContentWindow=0xa1f8518) at nsMsgCompose.cpp:1377
It goes on, but the relevant parts are there. The signature file is a named pipe, and it spends the rest of forever trying and failing (ESPIPE) to seek on that pipe. Hope this helps.
Comment 23•18 years ago
|
||
I just wanted to add a comment, in case anybody ever cares to implement the easy fix for this bug, that the solution is in comment #6 above, and has been sitting there since August 2004.
Updated•18 years ago
|
QA Contact: message-compose
Comment 24•18 years ago
|
||
Not quite sure how this got assigned to me. Reassigning to default.
Assignee: todd_lewis → nobody
Summary: thunderbird crashes when attempting to read a signature file that is a FIFO → thunderbird loops forever reading a FIFO signature file
Comment 25•18 years ago
|
||
doesn't hang in tbird trunk 2007102813 with the instructions in comment 0. fortune exits when the compose window comes up so presumably its output got gobbled up. I don't see any signature text though, unlike with a regular file.
Comment 26•17 years ago
|
||
It's still doing it in thunderbird-2.0.0.14 on Fedora 8, fwiw.
Comment 27•17 years ago
|
||
This is bug 62993.
Would be interesting to know if it still happens on trunk. Please comment in that bug if you get to testing it.
http://www.mozillamessaging.com/en-US/thunderbird/early_releases/
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/latest-trunk/
Status: NEW → RESOLVED
Closed: 21 years ago → 17 years ago
Resolution: --- → DUPLICATE
Comment 28•17 years ago
|
||
wow, 62993 was opened in December 2000, that's nearly 8 years! heh heh There's me posting back in 2004. I wonder if I should try thunderbird again?
You need to log in
before you can comment on or make changes to this bug.
Description
•