1832988 Members
2699 Online
110048 Solutions
New Discussion

_XFlushInt() in loop

 
Prashanth DV
Occasional Contributor

_XFlushInt() in loop

Hi,
Application hangs at "_XFlushInt()" x-motif call, and its in a loop/hang. We killed with 11 signal, here the stack. Once we ruined tuse command over that process, but it was not writing any thing !!!
Searched in net there are some case reported, but there is no solution, any what's is there problem ? Its in HP-UX 11.x
1) case 1
#0 0xc1b99f78 in _XFlushInt () from /usr/lib/libX11.3
(gdb) bt
#0 0xc1b99f78 in _XFlushInt () from /usr/lib/libX11.3
#1 0xc1b99ec4 in _XFlush () from /usr/lib/libX11.3
#2 0xc1b93278 in _XSetClipRectangles () from /usr/lib/libX11.3
#3 0xc1b934bc in XSetClipRectangles () from /usr/lib/libX11.3
#4 0xc3324ed4 in SetFullGC () from /usr/lib/libXm.4
#5 0xc3330f44 in _XmTextToggleCursorGC () from /usr/lib/libXm.4
#6 0xc332ae58 in PaintCursor () from /usr/lib/libXm.4
#7 0xc332bc04 in DrawInsertionPoint () from /usr/lib/libXm.4
#8 0xc3315d34 in _XmTextSetHighlight () from /usr/lib/libXm.4
#9 0xc33346ec in _XmStringSourceSetValue () from /usr/lib/libXm.4
#10 0xc331534c in _XmTextSetString () from /usr/lib/libXm.4
#11 0xc3317b7c in XmTextSetString () from /usr/lib/libXm.4
#12 0x5bd30 in display_job ()
at /homes/dvpr80/new_dir/autosc/unix/share/src/autosc/autoscfun.c:1785
#13 0x5b9c0 in job_select (w=0x400d91c0, jobname=void)
at /homes/dvpr80/new_dir/autosc/unix/share/src/autosc/autoscfun.c:1683
#14 0x56cf8 in get_job_and_display (sig=17)
at /homes/dvpr80/new_dir/autosc/unix/share/src/autosc/autosccb.c:1421
#15
#16 0xc1b710c0 in _XFlush () from /usr/lib/libX11.3
#17 0xc01f8ed0 in _write_sys () from /usr/lib/libc.2
(gdb)

2) case 2
$/autosys/autosys/bin> ps -ef|grep 27080
autosys 27080 1 255 14:00:52 ? 702:44 autosc JOB

CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
0 ? 27080 autosys 241 20 8028K 2180K run 702:40 9.90 9.89 autosc

tuse command output
$/autosys/autosys/bin> more tusc_autosc.lis
( Attached to process 27080 ("autosc JOB") [32-bit] )
In user-mode .......................................................... [running]
Received signal 11, SIGSEGV, in user mode, [SIG_DFL], partial siginfo
Siginfo: si_code: I_NONEXIST, faulting address: 0, si_errno: 0
PC: 0xc1b99fa7, instruction: 0x48750988
exit(11) [implicit] ................................................... WIFSIGNALED(SIGSEGV)|WCOREDUMP

CORE Analysis :

#0 0xc1b99fa4 in _XFlushInt () from /usr/lib/libX11.3
(gdb) bt
#0 0xc1b99fa4 in _XFlushInt () from /usr/lib/libX11.3
#1 0xc1b99ec4 in _XFlush () from /usr/lib/libX11.3
#2 0xc1b98280 in XUnmapWindow () from /usr/lib/libX11.3
#3 0xc1ab1664 in UnmanageChildren () from /usr/lib/libXt.3
#4 0xc1ab18e8 in XtUnmanageChildren () from /usr/lib/libXt.3
#5 0xc1ab1a04 in XtUnmanageChild () from /usr/lib/libXt.3
#6 0x5d328 in display_tags (type=98 'b')
at /homes/dvpr80/new_dir/autosc/unix/share/src/autosc/autoscfun.c:2136
#7 0x5bd14 in display_job () at /homes/dvpr80/new_dir/autosc/unix/share/src/autosc/autoscfun.c:1783
#8 0x5b9c0 in job_select (w=0x400d91f8, jobname=void)
at /homes/dvpr80/new_dir/autosc/unix/share/src/autosc/autoscfun.c:1683
#9 0x56cf8 in get_job_and_display (sig=17)
at /homes/dvpr80/new_dir/autosc/unix/share/src/autosc/autosccb.c:1421
#10
#11 0xc1aaa838 in GetValues () from /usr/lib/libXt.3
#12 0xc1bbcefc in _X11TransSocketWrite () from /usr/lib/libX11.3
#13 0xc1bbdafc in _X11TransWrite () from /usr/lib/libX11.3
#14 0xc1b9a10c in _XFlushInt () from /usr/lib/libX11.3
#15 0xc1b99ec4 in _XFlush () from /usr/lib/libX11.3
#16 0xc1b9a21c in _XEventsQueued () from /usr/lib/libX11.3
#17 0xc1b8a558 in XEventsQueued () from /usr/lib/libX11.3
#18 0xc1ab476c in XtAppNextEvent () from /usr/lib/libXt.3
#19 0xc1aa69e0 in XtAppMainLoop () from /usr/lib/libXt.3
#20 0x350f8 in main (argc=2, argv=0x7bff01ec) at /homes/dvpr80/new_dir/autosc/unix/share/src/main/autosc.c:561
(gdb)
1 REPLY 1
James Lynch
Valued Contributor

Re: _XFlushInt() in loop

I am not familiar with autosc, is that your own program, or is it a 3rd party program?

It looks like this is a X-Motif bug. You can see _XFlush on the stack in two different locations. Somewhere after the first call to _XFlush, the process receives and processes a SIGUSR2 (signo. 17) signal. _Xflush probably has already grabbed a lock of some sort at this point. In processing the signal, _XFlush gets called again and ultimately calls _XFlushInt. _XFlushInt hangs because the lock it is looking for is not available. This is all just a guess based on what info you provided.

So, do you have all of the latest X11 and X-Motif patches on your system? If not, I would highly reccomend getting them installed before you go any further.

JL
Wild turkey surprise? I love wild turkey surprise!