View Issue Details

IDProjectCategoryView StatusLast Update
0002868unrealircdpublic2006-05-04 10:42
ReporterRobby22Assigned Tosyzop 
PrioritynormalSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
Platformi686OSFedora CoreOS Version4
Product Version3.2.4 
Target VersionFixed in Version3.2.5 
Summary0002868: More than one IPv6 listen block may cause a crash
DescriptionWell, it actually crashes the moment a listen-block with an IPv6 address is added, otherwise it runs fine and remote includes also work fine.
This is kind of a bummer since the whole idea was to run an IPv6 server but with remote includes. If the feature is disabled, UnrealIRCd ofcourse gladly accepts IPv6 listen-blocks and thus also clients without crashing.

** EDIT: it appears this is unrelated to curl, see 1st comment post **
Additional InformationCurl is (re)compiled with:
--disable-shared (as it would cause some odd error when enabled concerning some TLSv1 undefined symbol when starting the ircd)
--disable-thread (this doesn't seem to make any difference)
--disable-ares (I need the IPv6 support (why doesn't it use the newer C-ares anyway?))
--enable-ipv6, --enable-nonblocking, --enable-verbose, --with-zlib, --with-ssl
and it is the latest version (at this time, v7.15.3).

Also when remote includes is enabled in ./Config, -lares is added in the Makefile, so I had to remove it in order to be able to proceed with the compilation.


The backtrace:
=================== START HERE ======================
BACKTRACE:
Using host libthread_db library "/lib/libthread_db.so.1".
Core was generated by `./ircd'.
Program terminated with signal 11, Segmentation fault.

warning: svr4_current_sos: Can't read pathname for load map: Input/output error

#0 add_listener2 (conf=0x36393a44) at s_bsd.c:490
490 cptr->class = (ConfigItem_class *)conf;
#0 add_listener2 (conf=0x36393a44) at s_bsd.c:490
Cannot access memory at address 0x433431

#0 add_listener2 (conf=0x36393a44) at s_bsd.c:490
490 cptr->class = (ConfigItem_class *)conf;

0x8273760 <backupbuf>: ""

#0 add_listener2 (conf=0x36393a44) at s_bsd.c:490
        cptr = (aClient *) 0x4446333a
Cannot access memory at address 0x433431
GCC: gcc version 4.0.2 20051125 (Red Hat 4.0.2-8)
UNAME: Linux sequoia 2.6.15-1.1833_FC4 #1 Wed Mar 1 23:41:37 EST 2006 i686 i686 i386 GNU/Linux
UNREAL: Unreal3.2.4 build 1.1.1.1.2.1.2.1.2.2234.2.475 2006/03/14 19:47:07
CORE: -rw------- 1 ircd ircd 2617344 Mar 28 06:34 core.24322
=================== STOP HERE ======================
TagsNo tags attached.
3rd party modules

Activities

Robby22

2006-03-28 19:32

reporter   ~0011451

Last edited: 2006-03-28 19:33

After a recompile of UnrealIRCd without support for curl, it still had the problem (I suspected curl being at fault, but it seems not), now I seem to have narrowed it down to the IPv6 listen blocks.

It seems that the moment a second IPv6 listen block is added the server crashes, if I leave one IPv6 listen block in place the server runs fine, connecting to the IPv6 port also works fine.

I never suspected that being the problem but it is apparently.
Especially because I have a RedHat 7.3 box which runs the exact same UnrealIRCd version and has two IPv6 listen blocks, one SSL and one plain and it works like a charm.

Ohyeah, multiple IPv4 listen blocks do not seem to be a problem.

I should have tested it like this first but as I said, I never thought this would be the cause of the crashes, so, sorry.

New backtrace:
=================== START HERE ======================
BACKTRACE:
Using host libthread_db library "/lib/libthread_db.so.1".
Core was generated by `./ircd'.
Program terminated with signal 11, Segmentation fault.

warning: svr4_current_sos: Can't read pathname for load map: Input/output error

#0 add_listener2 (conf=0x3230373a) at s_bsd.c:490
490 cptr->class = (ConfigItem_class *)conf;
#0 add_listener2 (conf=0x3230373a) at s_bsd.c:490
#1 0x080891d1 in run_configuration () at s_conf.c:7987
#2 0x0807f626 in main (argc=Variable "argc" is not available.
) at ircd.c:1349

#0 add_listener2 (conf=0x3230373a) at s_bsd.c:490
490 cptr->class = (ConfigItem_class *)conf;

0x823e140 <backupbuf>: ""

#0 add_listener2 (conf=0x3230373a) at s_bsd.c:490
        cptr = (aClient *) 0x66306566
#1 0x080891d1 in run_configuration () at s_conf.c:7987
        listenptr = (ConfigItem_listen *) 0x9504958
#2 0x0807f626 in main (argc=Variable "argc" is not available.
) at ircd.c:1349
        type = Variable "type" is not available.
GCC: gcc version 4.0.2 20051125 (Red Hat 4.0.2-8)
UNAME: Linux sequoia 2.6.15-1.1833_FC4 #1 Wed Mar 1 23:41:37 EST 2006 i686 i686 i386 GNU/Linux
UNREAL: Unreal3.2.4 build 1.1.1.1.2.1.2.1.2.2234.2.475 2006/03/14 19:47:07
CORE: -rw------- 1 ircd ircd 2539520 Mar 29 03:30 core.16203
=================== STOP HERE ======================

syzop

2006-04-02 16:53

administrator   ~0011468

strange..

JasonTik

2006-04-29 16:47

reporter   ~0011661

Any news on this?

syzop

2006-04-29 17:07

administrator   ~0011662

No update on my part..

You experiencing this too Jason?

Robby22: I'm unable to reproduce it (ran through valgrind [a memory debugger] too). Could you send the following files to syzop@unrealircd.com:
- src/ircd binary
- commands.so
- the core file
Preferably in a tar.gz (or .zip or .rar)
Alternatively, upload it somewhere and send me the URLs (don't post them here)

Make sure the ircd binary is not newer than the core file btw, because then they are not useful (core files belonging to an old compile) ;p.

Thanks.

JasonTik

2006-05-01 17:04

reporter   ~0011669

No. Unfortunately I can't provide more information for you. My interest in this is due to the fact that the server in question is linked to a network I operate.

Robby22

2006-05-04 07:06

reporter   ~0011670

syzop: I mailed the files too you :)

I hope it gets solved soon, because I'm going to install FC5 on the box today and in a virtual machine test with FC5 and UnrealIRCd it seemed to be worse, adding even one IPv6 listen block crashes the server, but I need to look further into that.

syzop

2006-05-04 07:10

administrator   ~0011671

Last edited: 2006-05-04 10:41

Thanks for the files, definitely helped ;).

Could you verify that the issue is now fixed in latest CVS [.500]? Thanks.

EDIT: spelling...

EDIT2: heh lol, did not notice you posted a "I mailed the files" here, I actually took a look earlier, when I got your email.. so not THAt fast ;p.. still in an hour though.

Robby22

2006-05-04 07:21

reporter   ~0011672

That was fast :P

Ok will do, *goes to try it immediatly and crosses fingers* ;)

Robby22

2006-05-04 07:57

reporter   ~0011673

Yay, it works!

I'll be installing FC5 in an hour or two, need to make some preperations first, I hope it'll work on it too! :) I'll post an update when I get to it :)

Anyway, thanks! :D

syzop

2006-05-04 10:42

administrator   ~0011674

Good ;).

Well, I'm quite sure that should work as well (or at least, this bug got fixed).

Thanks again for the report.

Issue History

Date Modified Username Field Change
2006-03-27 23:52 Robby22 New Issue
2006-03-28 19:32 Robby22 Note Added: 0011451
2006-03-28 19:33 Robby22 Note Edited: 0011451
2006-04-02 16:53 syzop Note Added: 0011468
2006-04-02 16:53 syzop Status new => acknowledged
2006-04-29 16:47 JasonTik Note Added: 0011661
2006-04-29 17:07 syzop Note Added: 0011662
2006-04-29 17:16 syzop Summary IPv6 listen-block and remote includes causes crash => More than one IPv6 listen block may cause a crash
2006-04-29 17:16 syzop Description Updated
2006-05-01 17:04 JasonTik Note Added: 0011669
2006-05-04 07:06 Robby22 Note Added: 0011670
2006-05-04 07:10 syzop Note Added: 0011671
2006-05-04 07:11 syzop Note Edited: 0011671
2006-05-04 07:21 Robby22 Note Added: 0011672
2006-05-04 07:57 Robby22 Note Added: 0011673
2006-05-04 10:41 syzop Note Edited: 0011671
2006-05-04 10:42 syzop Status acknowledged => resolved
2006-05-04 10:42 syzop Fixed in Version => 3.2.5
2006-05-04 10:42 syzop Resolution open => fixed
2006-05-04 10:42 syzop Assigned To => syzop
2006-05-04 10:42 syzop Note Added: 0011674