[fpc-devel] Synapse hangs in ARM-Linux

Michael Schnell mschnell at lumino.de
Mon Jan 28 11:47:08 CET 2013


Hi,
(Any Synapse experts around :-)   ? )

With the great help from Thomas (who taught me to understand how the 
Linker works and that it's error messages are not what I supposed them 
to be) I have been able to compile and partly run my Snapse-based 
project - that already runs fine on Windows and PC-Linux - on my QBAP 
NAS device.

It can receive and send E-Mails via POP3 and SMTP just fine and does 
access a HTTP server (the controller of a Central Heating attached to 
the local Ethernet) via HTTP.

The problem is, that the HTTP access to the "embedded Web Server" in the 
Heating Controller rather often results in a timeout. (Supposedly the 
small CPU in the controller is too busy with other stuff and just drops 
the Socket open request instead of  answering.)

For the Windows and PC Linux versions of my project this is no problem 
at all. When I get any error message from Synapse, I simply do a retry. 
I found I never need more than just another try to make it work 
decently. (Supposedly any Browser does this under the hood without the 
user noticing it.)

But when using the same Pascal code for my project and Synapse (the RTL 
and FCL libraries are from the svn for the PC, but from the 
"TAR-distribution" for ARM) on the ARM Box, the project infinitely hangs 
when this situation is hit. Usually several HTTP requests do work and it 
hangs with the next one.

Synapse (or whatever is called by same) It hangs in state "5" 
("HR_Connect") and obviously never returns to my user code.

When it hangs, even CTRL-C does not have any effect and I need to use 
"kill" from another console session.


I tried to reproduce this with a more simple project, just accessing a 
non-existing IP address, but I found that while on Windows here Synapse 
issues a time out (after some seconds, exactly like when the Heating 
Controller fails to answer), when compiling for Linux (PC and ARM) the 
error message is "HR_Error: 113,No route to host" and is issued 
immediately and thus not involves a timeout (and no hanging on ARM).

So I'm out of luck, as I would need to install debugging tools (Lazarus 
locally, Remote debugging with Lazarus) or learn to work with gdb on fpc 
projects) and try to find problems in code that is not created by 
myself. This does not sound like easy to do.

Any suggestions on how to proceed ?

Thanks
-Michael



More information about the fpc-devel mailing list