Opened 10 years ago

Closed 10 years ago

#1749 closed Bug (invalid)

transmission-daemon: completion.c:330: tr_cpFileIsComplete: Assertion `tr_torBlockPiece( tor, lastBlock ) == file->lastPiece' failed.

Reported by: turbo Owned by: charles
Priority: High Milestone:
Component: Daemon Version: 1.42+
Severity: Major Keywords:
Cc: assertion crash

Description

This is SVN version 7789. But looking at completion.c, this bug SHOULD exist in 1.50b2 as well...

Change History (13)

comment:1 Changed 10 years ago by turbo

Backtrace:

(gdb) bt #0 0xb7f5e410 in ?? () #1 0xb798d248 in ?? () #2 0x00000022 in ?? () #3 0x08b92320 in ?? () #4 0xb7d2587b in write_nocancel () from /lib/tls/i686/cmov/libpthread.so.0 #5 0x0806b14b in tr_evbuffer_write (io=0x894c030, fd=171, howmuch=34) at peer-io.c:252 #6 0x0806c796 in tr_peerIoTryWrite (io=0x894c030, howmuch=1024) at peer-io.c:793 #7 0x0806c937 in tr_peerIoFlush (io=0x894c030, dir=TR_CLIENT_TO_PEER, limit=1024) at peer-io.c:823 #8 0x08063e06 in tr_bandwidthAllocate (b=0x80a9c80, dir=TR_CLIENT_TO_PEER, period_msec=500) at bandwidth.c:221 #9 0x08072303 in bandwidthPulse (vmgr=0x80aada8) at peer-mgr.c:2368 #10 0x0805fa8b in timerCallback (fd=-1, event=1, vtimer=0x80aadc0) at trevent.c:307 #11 0x0808eb2e in event_base_loop (base=0x80ab0e0, flags=0) at event.c:392 #12 0x0808ee2a in event_loop (flags=0) at event.c:468 #13 0x0808ee42 in event_dispatch () at event.c:406 #14 0x0805f889 in libeventThreadFunc (veh=0x80aacc0) at trevent.c:251 #15 0x08051497 in ThreadFunc? (_t=0x80aad50) at platform.c:106 #16 0xb7d20267 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #17 0xb7cb460e in clone () from /lib/tls/i686/cmov/libc.so.6

comment:2 Changed 10 years ago by turbo

Better backtrace?

(gdb) bt
#0  0xb7f5e410 in ?? ()
#1  0xb798d248 in ?? ()
#2  0x00000022 in ?? ()
#3  0x08b92320 in ?? ()
#4  0xb7d2587b in __write_nocancel () from /lib/tls/i686/cmov/libpthread.so.0
#5  0x0806b14b in tr_evbuffer_write (io=0x894c030, fd=171, howmuch=34) at peer-io.c:252
#6  0x0806c796 in tr_peerIoTryWrite (io=0x894c030, howmuch=1024) at peer-io.c:793
#7  0x0806c937 in tr_peerIoFlush (io=0x894c030, dir=TR_CLIENT_TO_PEER, limit=1024) at peer-io.c:823
#8  0x08063e06 in tr_bandwidthAllocate (b=0x80a9c80, dir=TR_CLIENT_TO_PEER, period_msec=500) at bandwidth.c:221
#9  0x08072303 in bandwidthPulse (vmgr=0x80aada8) at peer-mgr.c:2368
#10 0x0805fa8b in timerCallback (fd=-1, event=1, vtimer=0x80aadc0) at trevent.c:307
#11 0x0808eb2e in event_base_loop (base=0x80ab0e0, flags=0) at event.c:392
#12 0x0808ee2a in event_loop (flags=0) at event.c:468
#13 0x0808ee42 in event_dispatch () at event.c:406
#14 0x0805f889 in libeventThreadFunc (veh=0x80aacc0) at trevent.c:251
#15 0x08051497 in ThreadFunc (_t=0x80aad50) at platform.c:106
#16 0xb7d20267 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#17 0xb7cb460e in clone () from /lib/tls/i686/cmov/libc.so.6

comment:3 Changed 10 years ago by charles

  • Milestone 1.60 deleted

turbo: I was wondering, as I look over tr_cpFileIsComplete()... did the torrent in question have any files which were zero bytes in size?

If you can track this problem down to a single torrent, could you mail me the .torrent or a link on where to get it?

Also: please don't set milestones unless you're attaching patches ;)

comment:4 Changed 10 years ago by charles

If it is a zero-byte file problem, r7796 should fix it

comment:5 Changed 10 years ago by turbo

No change with r7796 - still get the assertion. In different torrents each time. And no zero byte files in the either of the torrent(s).

Don't have a zero-byte file in any of my torrents...

comment:6 Changed 10 years ago by charles

Hmm, too bad. At least it's repeatable for you; we can keep hammering on it. Please update to r7797 and attach the new assertion failure if/when it happens again.

comment:7 Changed 10 years ago by charles

turbo: anything to report? :)

comment:8 Changed 10 years ago by livings124

Do you get the same assert in the released 1.42?

comment:9 Changed 10 years ago by turbo

Haven't tried 1.42 in quite a while. But r7797 did SOMETHING! I checked the differences between r7796 and r7797, and that don't explain much.

I get much higher loads, threads hang and some other things I can't quite put my finger on (my move thingie isn't doing what its supposed to).

And my primary (live) daemon is run in foreground. After a while the client (remote) can't connect (or at least, it sits there waits for data). Pressing ONE Ctrl-C in the daemon, releases the daemon and 'business as usual'. For a while at least (the time it takes the main thread to shutdown).

I'm no friend of GDB (or rather, GDB hates me! :). I've never really figured out how to follow a child thread instead of the main thread so I can't debug why...

Just saw that I need to update. I'll report back after I've done so and looked at what's changed...

comment:10 Changed 10 years ago by charles

gdb isn't needed. just attach the output of the assertion failure in r7797 or higher.

comment:11 Changed 10 years ago by charles

turbo: anything to report? :)

comment:12 Changed 10 years ago by turbo

Unfortunatly not. It haven't crashed in days!

It hangs every now and then though. Or rather, the client can't connect. But output from the daemon indicate that it's actually working...

comment:13 Changed 10 years ago by charles

  • Resolution set to invalid
  • Status changed from new to closed

Feel free to reopen this ticket if/when the problem reappears. Until then there's not much I can do about this.

Note: See TracTickets for help on using tickets.