A
avishaih
Hello all,
We (at my company) have a fairly complicated multi-threaded
application, that interfaces with user input, web (network) input and
hardware devices (the platform is a custom embedded board, running
Linux on an ARM9 CPU). To help ourselves debug and profile the
application, we've created a monitoring thread within the app that
creates two named pipes (input and output) using mkfifo(). A different
small application was created to access these pipes, thus giving us an
introspection tool in runtime. This mechanism works well when there
are no problems, meaning that while the application is running
normally, I can connect to the application using the pipes, and obtain
current status and other statistics.
My problem arises when the main app is hanging or stuck at 98-100% CPU
utilization. When at this state (which we can not find an easy way to
reproduce), the monitoring client hangs. That is, the monitoring
client is launched, but does not 'connect' to the main application. It
may be noted that other (busybox) utilities can be run from the shell,
such as 'ssh', 'ls', 'top' and friends. Also worth mentioning is that
the main app retains some of its functionality (e.g., image
streaming).
I'll be happy to supply more info as necessary,
Hope some of you gurus out there has any ideas,
Cheers,
Avishai
We (at my company) have a fairly complicated multi-threaded
application, that interfaces with user input, web (network) input and
hardware devices (the platform is a custom embedded board, running
Linux on an ARM9 CPU). To help ourselves debug and profile the
application, we've created a monitoring thread within the app that
creates two named pipes (input and output) using mkfifo(). A different
small application was created to access these pipes, thus giving us an
introspection tool in runtime. This mechanism works well when there
are no problems, meaning that while the application is running
normally, I can connect to the application using the pipes, and obtain
current status and other statistics.
My problem arises when the main app is hanging or stuck at 98-100% CPU
utilization. When at this state (which we can not find an easy way to
reproduce), the monitoring client hangs. That is, the monitoring
client is launched, but does not 'connect' to the main application. It
may be noted that other (busybox) utilities can be run from the shell,
such as 'ssh', 'ls', 'top' and friends. Also worth mentioning is that
the main app retains some of its functionality (e.g., image
streaming).
I'll be happy to supply more info as necessary,
Hope some of you gurus out there has any ideas,
Cheers,
Avishai