rtorrent terminates on 8.0 rc1 and rc2

IIRC around RC1 rtorrent started failing with the following message:

Code:
terminate called after throwing an instance of 'torrent::handshake_error'. what(): Handshake error. Abort (core dumped).

This happens when I try to open a new torrent file.

BTW rtorrent works fine on 7.2 and 8.0 before RC1.

This is amd64 architecture and the error was verified on 3 different computers. I tried building both net-p2p/rtorrent and net-p2p/rtorrent-devel.

Google found a message from a person that experienced the same error, but no resolution. The author of rtorrent claims that this error happens because FreeBSD doesn't handle C++ exceptions correctly. That's strange since many other C++ programs work just fine.

Any other ideas what's going on with rtorrent?

Thanks,
Andrew
 
Using 32-bit rtorrent-devel (rtorrent-devel-0.8.5_1 with libtorrent-devel-0.12.5) on RC1 and RC2 of today. No problems at all.
 
I'm running on amd64 8.0-RC2 with the 8.5 commited yesterday. If you want to link to the rtorrent pr or google groups post and tell us how to replicate it maybe we can figure something out. Aldo how are you adding the torrents through a watch folder or xmlrpc client?
 
Thanks everybody for looking into this problem.

I verified that rtorrent works fine on 8.0 RC1 and RC2 i386.

It fails on 8.0 RC2 (revision r198698) amd64.

I tried both net-p2p/rtorrent and net-p2p/rtorrent-devel ports. The error is always this:

Code:
(16:00:52) Using 'kqueue' based polling.
[Throttle off/off KB] [Rate   0.0/  0.0 KB] [Port: 6984] [U 0/0] [D 0/0] [H 1/32] [S 0/1/10583] [F 1/256
terminate called after throwing an instance of 'torrent::handshake_error'
what():  Handshake error
Abort (core dumped)

To reproduce I manually add a torrent, hash is successfully checked and then when rtorrent tries to connect it is terminated.

My own C++ projects that heavily use exceptions run fine.

I'll try to build the latest rtorrent sources with gcc 4.3 and 4.4 to check if it is compiler related.
 
Building either rtorrent port or rtorrent sources (from svn repository) with gcc 4.3 or 4.4 results in the following error:

Code:
g++43 -DHAVE_CONFIG_H -I. -I.. -I. -I..     -O2 -fno-strict-aliasing -pipe -g -DNDEBUG -I/usr/local/include/sigc++-2.0 -I/usr/local
/lib/sigc++-2.0/include   -I/usr/local/include   -I/usr/local/include   -I/usr/local/include -MT command_scheduler.o -MD -MP -MF 
.deps/command_scheduler.Tpo -c -o command_scheduler.o command_scheduler.cc                                                                                      
In file included from /usr/local/include/torrent/connection_manager.h:45,                                
                 from core/manager.h:43,                                                                 
                 from command_scheduler.cc:39:                                                           
/usr/include/netinet/in_systm.h:49: error: 'u_int16_t' does not name a type                              
/usr/include/netinet/in_systm.h:50: error: 'u_int32_t' does not name a type                              
/usr/include/netinet/in_systm.h:52: error: 'u_int32_t' does not name a type                              
In file included from /usr/local/include/torrent/connection_manager.h:46,                                
                 from core/manager.h:43,                                                                 
                 from command_scheduler.cc:39:                                                           
/usr/include/netinet/ip.h:51: error: 'u_int' does not name a type                                        
/usr/include/netinet/ip.h:58: error: 'u_char' does not name a type                                       
/usr/include/netinet/ip.h:59: error: 'u_short' does not name a type                                      
/usr/include/netinet/ip.h:60: error: 'u_short' does not name a type                                      
/usr/include/netinet/ip.h:61: error: 'u_short' does not name a type                                      
/usr/include/netinet/ip.h:66: error: 'u_char' does not name a type                                       
/usr/include/netinet/ip.h:67: error: 'u_char' does not name a type                                       
/usr/include/netinet/ip.h:68: error: 'u_short' does not name a type                                      
/usr/include/netinet/ip.h:141: error: 'u_char' does not name a type                                      
/usr/include/netinet/ip.h:142: error: 'u_char' does not name a type                                      
/usr/include/netinet/ip.h:143: error: 'u_char' does not name a type                                      
/usr/include/netinet/ip.h:145: error: 'u_int' does not name a type                                       
/usr/include/netinet/ip.h:192: error: 'u_char' does not name a type                                      
/usr/include/netinet/ip.h:193: error: 'u_char' does not name a type                                      
/usr/include/netinet/ip.h:194: error: 'u_short' does not name a type                                     
*** Error code 1                                                                                         

Stop in /home/ports/net-p2p/rtorrent/work/rtorrent-0.8.5/src.
*** Error code 1                                             

Stop in /home/ports/net-p2p/rtorrent/work/rtorrent-0.8.5/src.
*** Error code 1                                             

Stop in /home/ports/net-p2p/rtorrent/work/rtorrent-0.8.5.
*** Error code 1                                         

Stop in /home/ports/net-p2p/rtorrent/work/rtorrent-0.8.5.
*** Error code 1                                         

Stop in /home/ports/net-p2p/rtorrent.


Building rtorrent svn sources with default compiler (4.2) succeeded, but produced the following error upon attempt to run:

Code:
(16:29:03) Using 'select' based polling.
[Throttle off/off KB] [Rate   0.0/  0.0 KB] [Port: 6972] [U 0/0] [D 0/0] [H 0/32] [S 0/1/10583] [F 0/256
terminate called after throwing an instance of 'torrent::input_error'
what():  Command "get_tracker_dump" does not exist.
Abort (core dumped)

Any other suggestions?
 
Back
Top