View Issue Details

IDProjectCategoryView StatusLast Update
0001242unrealircdpublic2003-11-20 19:43
Reporterbawalker Assigned Tocodemastr 
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version3.2-beta17 
Summary0001242: Multiple users per channel kill IRCd on a PPC150 Clone
DescriptionIn the middle of August after I had installed & configured Unreal3.2 Beta 17 on a UMAX S900 server (PPC 150, roughtly a clone of the Powermac 9500) I began to notice the server would crash randomly. I spent several weeks removing and recompiling the source code from scratch and modifying configuration files in attempts to find the cause of the error. I then found that nothing I did caused the error, but infact the error exsists after a clean compile and install. The reason for the crash was traced back to when I noticed more than 1 user would connect to a channel the ircd process would simply stop and the ircd server would crash. The actual OS itself remained fine and working.

This issue has been reproduced 100% of the time in versions Beta 12 thru Beta 17, as well as in the most recent CVS version of 20030910. Upon discovery of this issue, I visited #unreal-support where this was discussed among several channel members who then connected and joined different channels. The ircd server did not crash until someone joined a channel where another user was already connected. Users "Sinus" and "Nips" verified this issue as being directly related to users joining channels while using the IRCd on a PPC based processor.


I do know two exsisting bug reports were filed in regards to this issue and were fixed on 7-15-2003:

http://bugs.unrealircd.org/bug_view_page.php?bug_id=0000929
http://bugs.unrealircd.org/bug_view_page.php?bug_id=0001105

So that leaves me to wonder if this issue exsists on the UMAX S900 PPC150 clone while it was fixed on Apple Macintosh PPC based systems?
Steps To ReproduceThis issue was reproduced identically in both Unreal3.2 beta 17 and Unreal3.2-cvs (20030910)

1.) Download any Unreal3.2 ircd or cvs versions.
2.) gzip -d <file name>
3.) tar xvf <file name>
4.) ./Config
5.) make
6.) I copied the *.conf files into the /var/ircd/Unreal3.2 directory
7.) ./unreal start
8.) I connected to the IRC server and joined #test1
9.) A second user connected to the IRC server and joined #test3
10.) A third user connected to the IRC server and joined #test1 only to have the IRC process be terminated and the ircd server crashed.

This has been reproduced fully over 20+ times.
Additional InformationI know you guys don't have access to this type of machine in your labs/work area so PLEASE contact me to gain access to this server. Email me at [email protected] in order to gain access.

I have setup a crontab on this server so that the process is restarted for users and coding staff to test and see the issue in action. Our IRC server is located at: irc://192.216.133.20
3rd party modules

Activities

codemastr

2003-09-10 19:28

reporter   ~0003632

Would you be able to paste me a uname -p and uname -s output? Also, can you search the Makefile for LINUX_PPC and paste any occurances that are found?

bawalker

2003-09-10 20:14

reporter   ~0003635

"Would you be able to paste me a uname -p and uname -s output?"

randy:/home/modem# uname -m
ppc

randy:/home/modem# uname -n
randy

randy:/home/modem# uname -r
2.2.20-pmac

randy:/home/modem# uname -s
Linux

randy:/home/modem# uname -p
unknown

randy:/home/modem# uname -v
#1 Thu March 21 17:08:23 EST 2002

----

"...Also, can you search the Makefile for LINUX_PPC and paste any occurances that are found?"

When I checked the standard Unreal3.2 Beta 17 Makefile and Makefile.in, there were no occurances of the letters *PPC*, *LINUX*, or *LINUX_PPC*. I also checked the Unreal3.2-cvs (20030910) Makefile and Makefile.in, neither of which contained any letters of *PPC*, *LINUX*, or *LINUX_PPC*.

I hope this helps.

syzop

2003-09-11 18:18

administrator   ~0003639

Btw, codemastr, I think you can just remove all those #ifdef LINUX_PPC thingies, the va_start / va_end are always required (I think you already discovered this). It differs between architectures/compilers[?]/etc if you try it without them, for example I looked at what the difference is in compiled code (I disassembled it) between:
void func(char *str, ...)
{
char buf[512];
char buf2[512];
va_list vl;

    va_start(vl, str);
    vsprintf(buf, str, vl);
    va_end(vl); // mark
    va_start(vl, str); // mark
    vsprintf(buf2, str, vl);
    va_end(vl); // mark
    printf("got = '%s'\nand '%s'\n", buf, buf2);
}

and without the marked lines, result: no difference at all (with -O2 optimization).

So my suggestion is just to remove the ifdefs and let the va_start/va_end fixes you added always enabled...
Additionally you can then also get rid of the whole PPC detection thingy :).

bawalker

2003-09-14 03:45

reporter   ~0003649

I really don't want to sound pushy or nasty or anything like that. But due to certain circumstances, the person/business I am installing this IRCd for is wanting to move ahead with getting an ircd installed and running within days. I'm trying to get them to hold back to use Unreal3.2 rather than another ircd since running and maintaining unreal is much easier for me.

Is there any sort of timeline for this bug being fixed? Is this bug connected to the previous MAC related bugs that caused the server to crash upon multiple users joining a channel?

Thanks.

syzop

2003-09-14 04:11

administrator   ~0003650

well funny enough this is one of the bugs that will be fixed within a few days.

syzop

2003-09-14 16:05

administrator   ~0003651

Btw, in the meantime you could open 'Makefile' (need to run ./Configure first ofcoz) and add -DLINUX_PPC to the line that contains XCFLAGS (not the one with # in front of it), so for example:
XCFLAGS=-pipe -g -O2 -funsigned-char -export-dynamic
to:
XCFLAGS=-pipe -g -O2 -funsigned-char -export-dynamic -DLINUX_PPC

codemastr

2003-09-14 16:47

reporter   ~0003652

Fixed in .1924. CVS update and rerun ./Config && make and everything should work fine.

Issue History

Date Modified Username Field Change
2003-09-10 02:23 bawalker New Issue
2003-09-10 19:28 codemastr Note Added: 0003632
2003-09-10 20:14 bawalker Note Added: 0003635
2003-09-11 18:18 syzop Note Added: 0003639
2003-09-14 03:45 bawalker Note Added: 0003649
2003-09-14 04:11 syzop Note Added: 0003650
2003-09-14 16:05 syzop Note Added: 0003651
2003-09-14 16:47 codemastr Status new => resolved
2003-09-14 16:47 codemastr Resolution open => fixed
2003-09-14 16:47 codemastr Assigned To => codemastr
2003-09-14 16:47 codemastr Note Added: 0003652
2003-11-20 19:43 syzop Status resolved => closed