>>>>> "ew" == Edi Weitz <[EMAIL PROTECTED]> writes:

  ew> GC lossage.  No transport function for object 0x656a624f
  ew> LDB monitor

  ew> I was able to leave the LDB monitor with "exit" and everything seems
  ew> to work fine now (I'm writing this only some minutes after it
  ew> happened) but I have no idea what's happening here and wonder if this
  ew> is something I have to worry about.

I run into this very infrequently, but most often after having made
changes to CMUCL internals. GC lossage is probably a symptom of the
lisp heap having been corrupted. You can enable extra checking for the
generational garbage collector (which may help detect the problem more
quickly) using code such as:

  (alien:def-alien-variable ("gencgc_verbose" gencgc-verbose) c-call::int)
  (alien:def-alien-variable ("pre_verify_gen_0" gencgc-pre-verify-gen0) c-call::int)
  (alien:def-alien-variable ("verify_after_free_heap" gencgc-verify-after-free-heap) 
c-call::int)
  (alien:def-alien-variable ("verify_dynamic_code_check" 
gencgc-verify-dynamic-code-check) c-call::int)
  (alien:def-alien-variable ("check_code_fixups" gencgc-check-code-fixups) c-call::int)
  (alien:def-alien-variable ("gencgc_zero_check" gencgc-zero-check) c-call::int)
  (alien:def-alien-variable ("gencgc_enable_verify_zero_fill" 
gencgc-enable-verify-zero-fill) c-call::int)
  (alien:def-alien-variable ("gencgc_zero_check_during_free_heap"
                       gencgc-zero-check-during-free-heap) c-call::int)

  (defun gencgc-enable-checking ()
    (format *debug-io* "~&Enabling GenCGC checking...~%")
    (setf gencgc-verbose 2)
    (dolist (check '(gencgc-pre-verify-gen0
                     gencgc-verify-after-free-heap
                     gencgc-verify-dynamic-code-check
                     gencgc-check-code-fixups
                     gencgc-zero-check
                     gencgc-enable-verify-zero-fill
                     gencgc-zero-check-during-free-heap))
      (setf check 1))))
  

  ew> I tried to reproduce this error but didn't succeed. I'm using 18e-pre,
  ew> built 2002-12-19 on melbourne. The application uses UncommonSQL and
  ew> had an open database connection to PostgreSQL, so FFI stuff was
  ew> involved if that's important.

foreign code can corrupt the lisp heap if it misbehaves.

(with-plug
  You could write an UncommonSQL backend to pg.lisp to avoid the
  FFI and be more thread-safe.)
  
-- 
Eric Marsden                          <URL:http://www.laas.fr/~emarsden/>

Reply via email to