[Gc] SIGSEGV in mark.c:759 (GC6.8/linux)

Boehm, Hans hans.boehm at hp.com
Fri Sep 22 16:42:42 PDT 2006


You can probably get some idea of the object size by looking at the
difference between current_p and limit.  If descr is visible to gdb,
that might give you the entire size, in bytes.

Since this is likely to be a large range, it may have been split.  In
that case, I think *mark_stack_top should describe the remainder of the
range.

Given that this seems to be nowhere near the heap, a more interesting
question might be whether it's in the GC root set.  Try
GC_print_static_roots() at that point.  If it's not in the root set, you
might try turning on DEBUG_THREADS in pthread_stop_world.c, and see
whether it gets pushed as a thread stack.

If you need to check more systematically how this is getting onto the
mark stack, there's a bit of support for that in gc7 (grep for
ENABLE_TRACE), but probably not in 6.8.  But that really only works as
is if the address is somewhat reproducible.

Hans

> -----Original Message-----
> From: Alec Orr [mailto:Alec.Orr at wbemsolutions.com] 
> Sent: Thursday, September 21, 2006 11:57 PM
> To: Boehm, Hans
> Cc: gc at napali.hpl.hp.com
> Subject: Re: [Gc] SIGSEGV in mark.c:759 (GC6.8/linux)
> 
> Hans,
> 
> Thank you kindly for your replies!  We do have other threads 
> running, but none being created or ending (we have 2 long 
> lived threads for now).  I couldn't find a 
> USE_PROC_FOR_LIBRARIES defined in our gc headers.  We built 
> GG 2.8 with assertions, full debug and POSIX threads using 
> the configure script.
> 
> The 'limit' always lies outside any address range /opt/<proc>/maps.
> 
> You mentioned that "You can also determine fairly easily what 
> the size of the offending object is, which might tell you something"
> 
> Can you point me in the right direction on how to I can fetch this?
> 
> Thanks again for your time,
> Alec
> 
> 
> (gdb) print (void*)limit
> $2 = (void *) 0x4166a308
> (gdb) bt
> #0  GC_mark_from (mark_stack_top=0x8051250, mark_stack=0x80510a8,
> mark_stack_limit=0x80590a8) at mark.c:759
> #1  0x4002c380 in GC_mark_some (cold_gc_frame=0x40646b10 "") 
> at mark.c:361
> #2  0x400220c0 in GC_stopped_mark (stop_func=0x400214f0 
> <GC_never_stop_func>) at
> alloc.c:531
> #3  0x4002241a in GC_try_to_collect_inner (stop_func=0x400214f0
> <GC_never_stop_func>) at alloc.c:378
> #4  0x40022726 in GC_collect_or_expand (needed_blocks=1, 
> ignore_off_page=0) at
> alloc.c:1036
> #5  0x40028900 in GC_alloc_large (lw=599, k=1, flags=0) at malloc.c:62
> #6  0x40028c8a in GC_generic_malloc (lb=2394, k=1) at malloc.c:206
> #7  0x40028f74 in GC_malloc (lb=2394) at malloc.c:333
> #8  0x40024bd6 in GC_debug_malloc (lb=2375, s=0x400d3fe8 
> "src/apiext.c", i=132) at dbg_mlc.c:492
> #9  0x40024eb9 in GC_debug_realloc (p=0x8176010, lb=2375, 
> s=0x400d3fe8 "src/apiext.c", i=132)
>      at dbg_mlc.c:903
> #10 0x400bae7f in int_reallocMemory (pFunc=0x402ff30d 
> "src/cimxml_schema.c",
>      pFile=0x402ff30d "src/cimxml_schema.c", pLine=6396, 
> vptr=0x8176010, size=2375, heap=0)
>      at src/apiext.c:132
> #11 0x402e3473 in doMarkup (
>      newstring=0x8176010 "Indicates the current status(es) of 
> the element. 
> Various health and operational statuses are defined. Many of 
> the enumeration&apos;s values are self- explanatory. However, 
> a few are not and are descri"..., markupString=0x40646d46 
> "t") at src/cimxml_schema.c:6395
> #12 0x402e33e2 in markupReservedXters (
>      str=0x81e8010 "Indicates the current status(es) of the 
> element. Various health and operational statuses are defined. 
> Many of the enumeration's values are self- explanatory. 
> However, a few are not and are described i"...) at
> src/cimxml_schema.c:6363
> #13 0x402d42d2 in pcdata_encodeformat (value=0x8137f10) at 
> src/cimxml_schema.c:429
> #14 0x402d4c16 in cim_value_toxml (value=0x8137f10) at 
> src/cimxml_schema.c:867
> #15 0x402da6bd in cim_qualifier_toxml (qual=0x8137ee8) at 
> src/cimxml_schema.c:3079
> #16 0x402d9e46 in qualifierlist_toxml (qlist=0x8137fb0) at 
> src/cimxml_schema.c:2843
> #17 0x402dc2e0 in cim_propertyarray_toxml (prop=0x8139ee8) at
> src/cimxml_schema.c:3738
> #18 0x402d9d46 in propertylist_toxml (plist=0x80ad3f8) at 
> src/cimxml_schema.c:2795
> #19 0x402d9a4d in cim_class_toxml (cls=0x80a7190) at 
> src/cimxml_schema.c:2723 #20 0x402e2821 in 
> cim_ireturnvalue_toxml (methodname=0x8061970, 
> iretlist=0x8154e70, qtlist=0x0)
>      at src/cimxml_schema.c:6076
> #21 0x402e16ba in cim_imethodresponse_toxml 
> (methodname=0x8061970, iretlist=0x8154e70, qtlist=0x0,
>      error=0x0) at src/cimxml_schema.c:5676
> #22 0x402e076d in cim_simplersp_toxml (methodname=0x8061970, 
> retval=0x0, retlist=0x8154e70, qtlist=0x0,
>      error=0x0, bIntrinsic=1) at src/cimxml_schema.c:5346
> #23 0x402c6c44 in CIMOMhdle_getClass (msgData=0x80a4f60, 
> pHandle=0xbfffd790) at
> src/cimxml.c:4428
> #24 0x402bf838 in CIMXML_RequestMessage_Handler (
>      xmldocument=0x8088ab0 "<?xml version=\"1.0\" 
> encoding=\"UTF-8\"?>\r<CIM CIMVERSION=\"2.0\" 
> DTDVERSION=\"2.0\"><MESSAGE ID=\"2006:8:22:2:0:33:29:172\" 
> PROTOCOLVERSION=\"1.0\"><SIMPLEREQ><IMETHODCALL
> NAME=\"GetClass\"><LOCALNAMESPACEPATH><N"..., header=0x80a4fb0,
> pReserved=0xbfffd790) at src/cimxml.c:625
> #25 0x40464149 in websCIMXMLHandler (wp=0x80e8178, 
> urlPrefix=0x80dc3d0 "/CIMOM",
> webDir=0x80dc3e8 "",
>      arg=0, url=0x80e8058 "/CIMOM1", path=0x822f8b0 "/CIMOM1",
>      query=0x80df560 "<?xml version=\"1.0\" 
> encoding=\"UTF-8\"?>\r\n<CIM CIMVERSION=\"2.0\" 
> DTDVERSION=\"2.0\"><MESSAGE ID=\"2006:8:22:2:0:33:29:172\" 
> PROTOCOLVERSION=\"1.0\"><SIMPLEREQ><IMETHODCALL
> NAME=\"GetClass\"><LOCALNAMESPACEPATH><"...) at 
> cimom_url_handler.c:184
> #26 0x40453c0a in websUrlHandlerRequest (wp=0x80e8178) at 
> ../handler.c:288
> #27 0x40460365 in websReadEvent (wp=0x80e8178) at ../webs.c:511
> #28 0x40458591 in websSSLReadEvent (wp=0x80e8178) at ../websSSL.c:801
> #29 0x40458533 in websSSLSocketEvent (sid=1, mask=2, iwp=0x80e8178) at
> ../websSSL.c:772
> #30 0x40457473 in socketDoEvent (sp=0x80e8a18) at ../sockGen.c:939
> #31 0x4045730d in socketProcess (sid=1) at ../sockGen.c:881
> #32 0x40463a70 in startListening () at main.c:429
> #33 0x404633f9 in startHTTPS (pReserved=0xbfffd790, 
> pMutex=0x40445640, pCond=0x40445660,
>      pWorked=0x40445690 "") at main.c:148
> #34 0x40442982 in newThread (pHandle=0x80c5c28) at 
> src/cimxmls_httpCPA.c:384
> #35 0x40034b8e in GC_start_routine (arg=0x80cf5e0) at 
> pthread_support.c:1212
> #36 0x4010c2b6 in start_thread () from /lib/tls/libpthread.so.0
> #37 0x420de407 in clone () from /lib/tls/libc.so.6
> 
> 
> 
> 
> 



More information about the Gc mailing list