Actually, you can probably scratch that (though I'd still be interested in seeing the
source to what you're working on :)
That bug turned out to be a stupid error in that function's error handling. Fixing
this revealed the real bug, somewhere in the handle code. This is probably that same
bug that bothered me a while back and I thought I killed...
It does not appear to be related to the fraction sizing, as it happens with all the
apps I have tested it with.
Here is the way I can reproduce it:
- Compile pgserver with handle debugging
- Compile the demos, and the pseudo3d theme
- Run it, with a command like:
./pgserver ../cli_c/demos/calc 2>&1 | grep handle | tee errlog
- Run the following command and press enter to kill it:
../cli_c/demos/themedemo ../themetools/examples/pseudo3d.th
- Repeat the themedemo command for a total of 9 cycles
- The panelbar on Calculator should be corrupted
Handle logs show that it is unable to read a recently created handle (presumably from
the theme load)
Interestingly, this also coincides with the handle number generator wrapping back
around to small numbers. This means that the handles are being added to the opposite
side of the tree.
I am about 90% sure this is a problem with the red/black tree that has been here for
quite a while, because it would also explain some of the mysterious "handle not found"
errors when running omnibar.
I'm going to look through the logs and code some more. Some other things that might
help with this is if I made some better handle debugging tools, including maybe a tool
to graphically display the trees (handle, div, etc.)
Or, I could just scrap the whole of handle.c and write a new red/black tree...
On Sat, 07 April 2001, Micah Dowty wrote:
>
> I have seen this before, and I thought I got rid of it. The following details would
>be extremely helpful:
> - Source code of the client that causes this
> - A stack backtrace
> - The values of p and x
> - complete server output with handle debugging on
>
> This will be big, so please send to me directly. (list limits attachments to 40k)
>
>
> On Fri, 06 April 2001, Philippe Ney wrote:
>
> >
> > By the way, I got many times the following error:
> >
> > freeze of the app and the following info in gdb running pgserver
> >
> > ---------8<---------------------------
> > ...
> > Program received signal SIGSEGV, Segmentation fault.
> > rdhandle (p=0xbffff63c, reqtype=1, owner=-1, h=41472) at gcore/handle.c:408
> > 408 *p = *x;
> >
> > ... (kill and restart)
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > rdhandle (p=0xbffff550, reqtype=1, owner=-1, h=18304) at gcore/handle.c:408
> > 408 *p = *x;
> >
> > ... (kill and restart)
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > rdhandle (p=0xbffff640, reqtype=1, owner=-1, h=34592) at gcore/handle.c:408
> > 408 *p = *x;
> > ---------8<---------------------------
> >
> > And the debug info with the settings:
> > [*] Widget debugging
> > [*] Event debugging
> > [ ] Video debugging
> > [*] Theme debugging
> > [ ] Client/server debugging
> > [ ] Initialization debugging
> > [*] Memory debugging
> > [*] Mirror guru() output on stderr
> > of the server gives:
> >
> > ---------8<---------------------------
> > ...
> > -2317 #198 (35032) 0x0808E0FC
> > -28 #197 (35004) 0x0808BC74
> > -7 #196 (34997) 0x0807FC24
> > -28 #195 (34969) 0x08079CEC
> > theme_lookup(0x0000,0x001A) = (not found)
> > theme_lookup(0x0000,0x001B) = (not found)
> > theme_lookup(0x0018,0x0009) = 0x00000003
> > theme_lookup(0x0003,0x0007) = 0x00000014
> > theme_lookup(0x000B,0x0009) = 0x00000003
> > theme_lookup(0x000B,0x0007) = 0x00000011
> > theme_lookup(0x001B,0x0016) = 0x00000020
> > theme_lookup(0x001B,0x0007) = 0x00000011
> > theme_lookup(0x001B,0x0008) = 0x00000011
> > theme_lookup(0x001B,0x0009) = 0x00000003
> > theme_lookup(0x001D,0x0005) = (not found)
> > theme_lookup(0x001B,0x0014) = 0x00000000
> > theme_lookup(0x001F,0x0016) = 0x00000040
> > theme_lookup(0x001F,0x0007) = 0x00000011
> > theme_lookup(0x001F,0x0008) = 0x00000011
> > theme_lookup(0x001F,0x0009) = 0x00000003
> > theme_lookup(0x001F,0x0005) = (not found)
> > theme_lookup(0x001F,0x0014) = 0x00000000
> > theme_lookup(0x0022,0x0016) = 0x00000040
> > theme_lookup(0x0022,0x0007) = 0x00000011
> > theme_lookup(0x0022,0x0008) = 0x00000011
> > theme_lookup(0x0022,0x0009) = 0x00000003
> > theme_lookup(0x0022,0x0005) = (not found)
> > theme_lookup(0x0022,0x0014) = 0x00000000
> > theme_lookup(0x0003,0x0014) = 0x00000003
> > theme_lookup(0x0003,0x0008) = 0x00000014
> > theme_lookup(0x002C,0x0007) = (not found)
> > theme_lookup(0x002C,0x0008) = (not found)
> > theme_lookup(0x002C,0x0009) = 0x00000003
> > theme_lookup(0x002C,0x0005) = (not found)
> > theme_lookup(0x002C,0x000E) = 0x00000008
> > theme_lookup(0x002C,0x000F) = (not found)
> > theme_lookup(0x002C,0x0014) = 0x00000003
> > theme_lookup(0x002C,0x0007) = (not found)
> > theme_lookup(0x002C,0x0008) = (not found)
> > theme_lookup(0x002C,0x0009) = 0x00000003
> > theme_lookup(0x002C,0x0005) = (not found)
> > theme_lookup(0x002C,0x000E) = 0x00000008
> > theme_lookup(0x002C,0x000F) = (not found)
> > theme_lookup(0x002C,0x0014) = 0x00000003
> > theme_lookup(0x002C,0x0007) = (not found)
> > theme_lookup(0x002C,0x0008) = (not found)
> > theme_lookup(0x002C,0x0009) = 0x00000003
> > theme_lookup(0x002C,0x0005) = (not found)
> > theme_lookup(0x002C,0x000E) = 0x00000008
> > theme_lookup(0x002C,0x000F) = (not found)
> > theme_lookup(0x002C,0x0014) = 0x00000003
> > theme_lookup(0x0003,0x0014) = 0x00000003
> > theme_lookup(0x0003,0x0008) = 0x00000014
> > theme_lookup(0x002C,0x0007) = (not found)
> > theme_lookup(0x002C,0x0008) = (not found)
> > theme_lookup(0x002C,0x0009) = 0x00000003
> > Fatal signal: Segmentation Fault (SDL Parachute Deployed)
> > ---------8<---------------------------
> >
> >
> > And sometimes this in the client
> >
> > ---------8<---------------------------
> > vfork -> child pid: 0
> > Init function
> > vfork -> child pid: 14119
> > *** PicoGUI ERROR (CLIENT) : recv error
> > *** PicoGUI ERROR (CLIENT) : Unexpected response type
> > Broken pipe
> > ---------8<---------------------------
> >
> > Do you have any idea?
> >
> >
> > Philippe
> >
> > _______________________________________________
> > Pgui-devel mailing list
> > [EMAIL PROTECTED]
> > http://lists.sourceforge.net/lists/listinfo/pgui-devel
>
> --
> perl -e'socket S,2,1,tcp;connect S,pack(H16,"0200029a80692d32").\0x8;print
> grep!/=/,<S>'
>
>
> _______________________________________________
> Pgui-devel mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/pgui-devel
--
perl -e'socket S,2,1,tcp;connect S,pack(H16,"0200029a80692d32").\0x8;print
grep!/=/,<S>'
_______________________________________________
Pgui-devel mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/pgui-devel