# rtorrent terminates on 8.0 rc1 and rc2



## tankist02 (Oct 27, 2009)

IIRC around RC1 rtorrent started failing with the following message: 


```
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


----------



## dh (Oct 27, 2009)

I'm using rtorrent-devel-0.8.5_1 on amd64 8.0-RC1 and it has been working without errors.


----------



## DutchDaemon (Oct 27, 2009)

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.


----------



## astadtler (Oct 30, 2009)

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?


----------



## astadtler (Oct 30, 2009)

Seems to be related to a mis-configured compiler.

http://libtorrent.rakshasa.no/ticket/1556
http://libtorrent.rakshasa.no/ticket/1562


----------



## tankist02 (Oct 30, 2009)

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:


```
(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.


----------



## tankist02 (Oct 30, 2009)

Building either rtorrent port or rtorrent sources (from svn repository) with gcc 4.3 or 4.4 results in the following error:


```
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:


```
(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?


----------

