āOperating Systems Groupā <os@qnx.com> wrote in message
news:9vd6jl$rkq$1@nntp.qnx.comā¦
āJim Lambertā <> jlambert@futurex.com> > wrote in message
news:9varo3$3iq$> 1@inn.qnx.com> ā¦
I have a socket server app that preforks 10 copies of itself and each
copy
then does an accept(). I did 2.5 million connections Monday night (in
12
hours) with no problems. Then I upgrade to 6.1.a and now I canāt even
do
1000 without an ENOENT error being returned. I donāt use any of the
things
listed in the release notes, AFAIK.
When your call to accept() returns with ENOENT, do all subsequent calls
fail
also?
That is exactly what is happening. In fact the whole IP system goes
bonkers. Canāt ping, telnet, ftp, nothing.
What I see happening is that the system doesnāt hang as such, it just
slows
down to a crawl.
The reason I was slowing to a crawl is because I was running my server at a
higher priority. I was banging it with 100ās of connections a second and it
just simulated a server hang because it ate up all the resources.
Can you post a pidin of the system after the calls to accept() start
failing
and when your machine becomes sluggish. Also do an ls -l /dev/io-net and
post the results, I have a sneaking suspicion that io-net might be
failing,
and this the mount point /dev/io-net/* are not valid, which causes
subsequent calls to accept() to fail with ENOENT.
I think you are on the right track since the io-net directory disappears
when this happens. Iāve posted the results of the pidin and ls below.
Here are the different scenarios that I have run. I have my socket server
which can connect to a database ODBC library. My stuff is compiled with
6.1.a while the database library is compiled with 6.1.
Here are the combinations I have tried and the results:
Works: My socket server printing to screen instead of sending to db (can do
200 socket connections per second)
Works: My socket server doing nothing, ie. reading the data but then not
displaying it or storing it in the database
Works: My test server using threads connecting to the database libraries.
Works like a champ, 250 inserts a second
Fails: My socket server connecting to their database library
So, you can see that my socket server stuff works fine. Where it fails is
when I connect to their database library which also uses sockets to
communicate with a Windows 2000 server.
HTH,
Jim
pidin.txt
pid tid name prio STATE Blocked
1 1 procnto 0f READY
1 2 procnto 15r RECEIVE 1
1 3 procnto 63r RECEIVE 1
1 4 procnto 15r RECEIVE 1
1 5 procnto 15r RECEIVE 1
1 6 procnto 10r RUNNING
1 7 procnto 15r RECEIVE 1
1 8 procnto 15r RECEIVE 1
1 9 procnto 6r READY
1 11 procnto 10r RECEIVE 1
1 12 procnto 15r RECEIVE 1
1 13 procnto 15r RECEIVE 1
2 1 sbin/tinit 10o REPLY 221207
3 1 proc/boot/slogger 10o RECEIVE 1
12292 1 sbin/mqueue 10o RECEIVE 1
5 1 proc/boot/pci-bios 15o RECEIVE 1
6 1 roc/boot/devb-eide 10o SIGWAITINFO
6 2 roc/boot/devb-eide 21r RECEIVE 1
6 3 roc/boot/devb-eide 21r RECEIVE 4
6 4 roc/boot/devb-eide 10o RECEIVE 10
6 5 roc/boot/devb-eide 10r CONDVAR b037866c
6 7 roc/boot/devb-eide 9o RECEIVE 7
6 9 roc/boot/devb-eide 10o RECEIVE 7
6 11 roc/boot/devb-eide 10o RECEIVE 7
7 1 /x86/sbin/devc-con 10o RECEIVE 1
8 1 hA/x86/sbin/fs-pkg 9o RECEIVE 1
8 2 hA/x86/sbin/fs-pkg 10o SIGWAITINFO
8 3 hA/x86/sbin/fs-pkg 10o RECEIVE 1
8 4 hA/x86/sbin/fs-pkg 9o RECEIVE 1
8 5 hA/x86/sbin/fs-pkg 10o RECEIVE 1
8 6 hA/x86/sbin/fs-pkg 9o RECEIVE 1
4105 1 sbin/pipe 10o RECEIVE 1
4105 3 sbin/pipe 10o RECEIVE 1
4105 4 sbin/pipe 9o RECEIVE 1
4105 5 sbin/pipe 9o RECEIVE 1
126986 1 usr/sbin/random 10o SIGWAITINFO
126986 2 usr/sbin/random 10o RECEIVE 1
126986 3 usr/sbin/random 10o NANOSLEEP
45067 1 sbin/devc-pty 10o RECEIVE 1
77836 1 sbin/devc-par 10o NANOSLEEP
77836 2 sbin/devc-par 9r CONDVAR 804f938
114701 1 sbin/devb-fdc 10o SIGWAITINFO
114701 2 sbin/devb-fdc 21r RECEIVE 1
114701 3 sbin/devb-fdc 10o RECEIVE 7
114701 4 sbin/devb-fdc 10o CONDVAR b037866c
114701 5 sbin/devb-fdc 10o RECEIVE 4
114701 6 sbin/devb-fdc 10o RECEIVE 4
77838 1 usr/sbin/spooler 10o REPLY 77836
77839 1 sbin/devc-ser8250 24o RECEIVE 1
139280 1 usr/sbin/inetd 10o SIGWAITINFO
159761 1 usr/sbin/dumper 15o RECEIVE 1
9220114 1 bin/pidin 10r REPLY 1
155668 1 cal/samba/bin/smbd 10o SIGWAITINFO
544789 (Zombie)
426006 1 usr/photon/bin/pwm 10r RECEIVE 1
221207 1 /photon/bin/Photon 10r RECEIVE 1
266264 1 ton/bin/fontsleuth 6o READY
266264 2 ton/bin/fontsleuth 10o RECEIVE 1
266264 3 ton/bin/fontsleuth 6o READY
266264 4 ton/bin/fontsleuth 6o READY
266264 5 ton/bin/fontsleuth 6o READY
471065 1 r/photon/bin/shelf 10r RECEIVE 1
471065 2 r/photon/bin/shelf 10r CONDVAR b049bacc
258074 1 hoton/bin/phfontFA 12r RECEIVE 1
299035 1 on/bin/io-graphics 12r REPLY 221207
544796 1 r/photon/bin/pterm 10r RECEIVE 1
315421 1 ton/bin/devi-hirun 15o RECEIVE 1
315421 2 ton/bin/devi-hirun 10o REPLY 7
315421 3 ton/bin/devi-hirun 12o SIGWAITINFO
507934 1 photon/bin/bkgdmgr 10r RECEIVE 1
507935 1 hoton/bin/wmswitch 10r RECEIVE 2
507936 1 r/photon/bin/saver 10r RECEIVE 1
544801 1 bin/ksh 10r REPLY 45067
524322 1 /X11R6/bin/Xphoton 10r SIGWAITINFO
577572 1 bin/ksh 10r REPLY 45067
5931045 1 r/photon/bin/pterm 10r RECEIVE 1
569382 1 r/photon/bin/pterm 10r RECEIVE 1
5931047 1 bin/ksh 10r SIGSUSPEND
2097192 1 ton/bin/helpviewer 10r RECEIVE 1
2097193 1 n/bin/vserver.file 10r RECEIVE 1
2117674 1 cal/samba/bin/smbd 10o SIGWAITINFO
9158699 1 bin/sh 10r REPLY 45067
9179180 1 router/bin/msgserv 9r READY
839725 1 r/photon/bin/pterm 10r RECEIVE 1
839726 1 bin/ksh 10r SIGSUSPEND
9179184 1 router/bin/msgserv 9r READY
9179185 1 router/bin/msgserv 9r READY
9179186 1 router/bin/msgserv 9r READY
9179187 1 router/bin/msgserv 9r READY
\
lsionet.txt
ls: No such file or directory (/dev/io-net)