[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

2.2.10 network "timer" problems with Interbase



Hi

a really weird problem:

I am using Interbase 5.0 SQL server and client on Debian 2.1 with 2.2.10 kernel.
However there seems to be a bug either in interbase or in kernel.

For those who are not familiar with SQL servers: an sql  server is started
by inetd after it gets a connection on port 3050 from an sql client.
The server then accepts querries for any databases and the connection ends
after the session finishes.

The problem is that the client freezes when left inactive for some time. At the
beginning i suspected DNS timeouts, but then made sure the system does not
try to use any DNS by changing 
order hosts,bind
in host.conf to
order hosts

(though it would be strange/difficult because there was no nameserver entry in resolv.conf)

Anyway, this did not help so i reread NET-3-HOWTO,
/usr/src/linux/Documentation/networking/routing.txt and fine-tuned routing
tables.

This did not help either!

Then I came across such command: "netstat -n -A inet -e -o"

here's what i've found:

(BTW: here's what netstat(8) has to say about timer:

Timer
       (this needs to be written)
:(


here is the state before connection

Thu Aug 19 13:03:33 CEST 1999
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Timer
udp        0      0 192.168.2.144:138       0.0.0.0:*                                      off (0.00/0) 0
udp        0      0 192.168.2.144:137       0.0.0.0:*                                      off (0.00/0) 0

and here after connecting:

Thu Aug 19 13:03:57 CEST 1999
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Timer
tcp        0      0 192.168.2.144:3050      192.168.2.144:1030      ESTABLISHED 0          off (0.00/0)
tcp        0      0 192.168.2.144:1030      192.168.2.144:3050      ESTABLISHED 0          off (0.00/0)
udp        0      0 192.168.2.144:138       0.0.0.0:*                                      off (0.00/0) 0
udp        0      0 192.168.2.144:137       0.0.0.0:*                                      off (0.00/0) 0

((from now on i'll leave only the needed info))

the output looks all the same for a minute counting from sending last byte
to the server:
Thu Aug 19 13:04:36 CEST 1999
tcp        0      0 192.168.2.144:3050      192.168.2.144:1030      ESTABLISHED 0          off (0.00/0)
tcp        0      0 192.168.2.144:1030      192.168.2.144:3050      ESTABLISHED 0          off (0.00/0)

after a minute the timer starts:
Thu Aug 19 13:04:42 CEST 1999
tcp        0  40660 192.168.2.144:3050      192.168.2.144:1030      ESTABLISHED 0          on (0.09/1)
tcp     3992      0 192.168.2.144:1030      192.168.2.144:3050      ESTABLISHED 0          off (0.00/0)

i do not know what the timer indicates, but i figured out its format is:
(x.xx/y)
where x.xx is number of seconds and y is some strange number
on next shots you can see it works like this:
"y" is set to 1 and x.xx to some small amount (a second, i guess)
then the seconds part decrements in real time and when it reaches zero, "y"
is incremented by one and imediately "x.xx" is set again to some time, this
time it's higher value.
After the "x.xx" part reaches zero again, "y" is incremented by one and
"x.xx" to some even larger amount, and the cycle repeats.

In case my description was too complicated: here's a sample output:
connection
(0.00/0) for a minute, then
(1.00/1)
(0.80/1)
(0.70/1)
(0.60/1)
... and so on...
(0.10/1)
(0.00/2)
(2.00/2)
(1.90/2)
(1.80/2)
(1.70/2)
...and so on until
(0.10/2)
(5.00/3)
(4.90/3)
... until
(0.10/3)
(0.00/4)
(10.00/4)
(9.90/4)
(9.80/4)
...and so on, while the part before slash is two times larger each time the
part after slash is ++

also the values in Recv-Q and Send-Q of server and client have changed.

Thu Aug 19 13:04:45 CEST 1999
tcp        0  40660 192.168.2.144:3050      192.168.2.144:1030      ESTABLISHED 0          on (1.98/4)
tcp     3992      0 192.168.2.144:1030      192.168.2.144:3050      ESTABLISHED 0          off (0.00/0)
Thu Aug 19 13:04:50 CEST 1999
tcp        0  40660 192.168.2.144:3050      192.168.2.144:1030      ESTABLISHED 0          on (4.01/5)
tcp     3992      0 192.168.2.144:1030      192.168.2.144:3050      ESTABLISHED 0          off (0.00/0)

then i send a command from the client to the server. the values of Recv- and
Send- Qs change and client freezes (!!!) until the current x.xx value reaches
zero! So when I'm "lucky" enough this can be a few minutes!!!

Then the server responds as if everything was OK

Thu Aug 19 13:05:13 CEST 1999
tcp       64  40660 192.168.2.144:3050      192.168.2.144:1030      ESTABLISHED 0          on (19.49/7)
tcp        0      0 192.168.2.144:1030      192.168.2.144:3050      ESTABLISHED 0          off (0.00/0)
Thu Aug 19 13:05:16 CEST 1999
tcp       64  40660 192.168.2.144:3050      192.168.2.144:1030      ESTABLISHED 0          on (16.07/7)
tcp        0      0 192.168.2.144:1030      192.168.2.144:3050      ESTABLISHED 0          off (0.00/0)
Thu Aug 19 13:05:18 CEST 1999
tcp       64  40660 192.168.2.144:3050      192.168.2.144:1030      ESTABLISHED 0          on (14.27/7)
tcp        0      0 192.168.2.144:1030      192.168.2.144:3050      ESTABLISHED 0          off (0.00/0)
Thu Aug 19 13:05:25 CEST 1999
tcp       64  40660 192.168.2.144:3050      192.168.2.144:1030      ESTABLISHED 0          on (6.70/7)
tcp        0      0 192.168.2.144:1030      192.168.2.144:3050      ESTABLISHED 0          off (0.00/0)
Thu Aug 19 13:05:32 CEST 1999
tcp        0      0 192.168.2.144:3050      192.168.2.144:1030      ESTABLISHED 0          off (0.00/0)
tcp        0      0 192.168.2.144:1030      192.168.2.144:3050      ESTABLISHED 0          off (0.00/0)

see? after the server responds the timer as well as the Q-s are reset to 0
and after a minute of inactivity, the timer starts again

therefore i can only work normally when the time between querries is less
than a minute (the timer doesn't start then)

And now the best thing: this was how it work under Linux 2.2.10.

When i use (stock Debian) kernel 2.0.36, everything works fine!!!
fine = the client doesn't freeze, and though the timer similarily starts
after a minute of inactivity, the part after slash is always zero

I'm attching my kernel configuration so you can see nothing weird is set (or
is it?)

so the actual question is: if it's not a bug in Interbase (probably it is),
is there any kernel #define or sysctl in /proc which could fix this problem?

thanks in advance,
any input appreciated,
Marcin
#
# Automatically generated make config: don't edit
#

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# Processor type and features
#
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
CONFIG_M686=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
# CONFIG_MATH_EMULATION is not set
# CONFIG_MTRR is not set
# CONFIG_SMP is not set

#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y

#
# General setup
#
CONFIG_NET=y
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_QUIRKS=y
# CONFIG_PCI_OPTIMIZE is not set
CONFIG_PCI_OLD_PROC=y
# CONFIG_MCA is not set
# CONFIG_VISWS is not set
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
# CONFIG_BINFMT_JAVA is not set
# CONFIG_PARPORT is not set
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
# CONFIG_APM_CPU_IDLE is not set
CONFIG_APM_DISPLAY_BLANK=y
CONFIG_APM_POWER_OFF=y
# CONFIG_APM_IGNORE_MULTIPLE_SUSPEND is not set
# CONFIG_APM_IGNORE_SUSPEND_BOUNCE is not set
# CONFIG_APM_RTC_IS_GMT is not set
# CONFIG_APM_ALLOW_INTS is not set

#
# Plug and Play support
#
# CONFIG_PNP is not set

#
# Block devices
#
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_VIA82C586 is not set
# CONFIG_BLK_DEV_CMD646 is not set
# CONFIG_IDE_CHIPSETS is not set

#
# Additional Block Devices
#
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_XD is not set
CONFIG_PARIDE_PARPORT=y
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_HD is not set

#
# Networking options
#
CONFIG_PACKET=m
# CONFIG_NETLINK is not set
# CONFIG_FIREWALL is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_IP_ROUTER is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_ALIAS is not set
# CONFIG_SYN_COOKIES is not set

#
# (it is safe to leave these untouched)
#
# CONFIG_INET_RARP is not set
CONFIG_SKB_LARGE=y
# CONFIG_IPV6 is not set

#
#  
#
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_BRIDGE is not set
# CONFIG_LLC is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
# CONFIG_CPU_IS_SLOW is not set

#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set

#
# SCSI support
#
# CONFIG_SCSI is not set
# CONFIG_SCSI_G_NCR5380_PORT is not set
# CONFIG_SCSI_G_NCR5380_MEM is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_ARCNET is not set
# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
CONFIG_NET_ETHERNET=y
CONFIG_NET_VENDOR_3COM=y
# CONFIG_EL1 is not set
# CONFIG_EL2 is not set
# CONFIG_ELPLUS is not set
# CONFIG_EL16 is not set
# CONFIG_EL3 is not set
# CONFIG_3C515 is not set
CONFIG_VORTEX=y
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_RTL8139 is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_ACENIC is not set
# CONFIG_NET_ISA is not set
# CONFIG_NET_EISA is not set
# CONFIG_NET_POCKET is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_DLCI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_RADIO is not set
# CONFIG_TR is not set
# CONFIG_SHAPER is not set
# CONFIG_HOSTESS_SV11 is not set
# CONFIG_COSA is not set
# CONFIG_RCPCI is not set

#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set

#
# IrDA subsystem support
#
# CONFIG_IRDA is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
# CONFIG_SERIAL is not set
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_MOUSE=y

#
# Mice
#
# CONFIG_ATIXL_BUSMOUSE is not set
# CONFIG_BUSMOUSE is not set
# CONFIG_MS_BUSMOUSE is not set
CONFIG_PSMOUSE=y
# CONFIG_82C710_MOUSE is not set
# CONFIG_PC110_PAD is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set

#
# Video For Linux
#
# CONFIG_VIDEO_DEV is not set

#
# Joystick support
#
# CONFIG_JOYSTICK is not set
# CONFIG_DTLK is not set

#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_FT_NORMAL_DEBUG is not set
# CONFIG_FT_FULL_DEBUG is not set
# CONFIG_FT_NO_TRACE is not set
# CONFIG_FT_NO_TRACE_AT_ALL is not set
# CONFIG_FT_STD_FDC is not set
# CONFIG_FT_MACH2 is not set
# CONFIG_FT_PROBE_FC10 is not set
# CONFIG_FT_ALT_FDC is not set

#
# Filesystems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
# CONFIG_UMSDOS_FS is not set
CONFIG_VFAT_FS=m
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
# CONFIG_MINIX_FS is not set
CONFIG_NTFS_FS=m
CONFIG_NTFS_RW=y
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
CONFIG_DEVPTS_FS=y
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set

#
# Network File Systems
#
# CONFIG_CODA_FS is not set
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_SUNRPC is not set
# CONFIG_LOCKD is not set
CONFIG_SMB_FS=m
# CONFIG_NCP_FS is not set

#
# Partition Types
#
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MAC_PARTITION is not set
# CONFIG_SMD_DISKLABEL is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_NLS=y

#
# Native Language Support
#
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_8 is not set
CONFIG_NLS_ISO8859_9=m
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set

#
# Console drivers
#
CONFIG_VGA_CONSOLE=y
CONFIG_VIDEO_SELECT=y
# CONFIG_MDA_CONSOLE is not set
# CONFIG_FB is not set

#
# Sound
#
# CONFIG_SOUND is not set

#
# Kernel hacking
#
# CONFIG_MAGIC_SYSRQ is not set

Reply to: