Skip navigation.
The QNX Community Portal

View topic - FTP stall over serial: interrupt 7 freezes

Page 1 of 1

FTP stall over serial: interrupt 7 freezes

PostPosted: Mon Jul 20, 2015 10:40 am
by cabradio
We have encountered an issue where file transfers 'lock-up'.

This is our architecture:
We have a number of serial ports on an embedded system installed on a PC/104, QNX Neutrino 6.3.0 sp 2. The serial port in question, /dev/ser3 devc-ser8250 driver (devc-ser8250 -C 4096 -I32768 -E -u3 -t4 -T4 -b 57600 -f 2e8,7 &), connects to a remote Windows PC via PPP (pppd). We have irq 7 driving this serial port. 99.99% of the time, this port is not connected as its for maintenance purposes.

However, there are occasions when this maintenance PC is connected and large file transfers are performed using FTP: normally this is via our own software built around libcurl for FTP, but we have tested it against the QNX FTP command-line client too with same results.

Not every time, but sometimes the FTP just stalls.

Examining the kernel event log via momentics debugger shows interrupt 7 during the transfer as very active (not surprisingly), as is the devc-ser8250 process in question, but after this stall event, int 7 disappears from the kernel event trace.

This is not recoverable other than rebooting the system.

Has anyone else experienced issues? I have read irq 7 is a "spurious interrupt" and needs extra care when handling and dont know if this could be a factor in devc-ser8250? I havent seen any further QNX RTOS releases addressing such a potential issue?
Thanks for reading

Re: FTP stall over serial: interrupt 7 freezes

PostPosted: Mon Jul 20, 2015 4:04 pm
by maschoen
The default for interrupt 7 is for the parallel port. I don't know if that is a factor. Spurious interrupts occurring should not be a problem for the serial driver interrupt handler. The driver would check a port to see what caused the interrupt, and finding none it would do nothing. If something else caused the interrupt and the the cause is not reset, that could be a problem.