Re: crashing socket tests

Bruno Haible <[email protected]>
Newsgroups gmane.lisp.clisp.devel
Message-ID <2994303.I6xxQrfC4l@omega>
> 1) In build-porting64-gcc-portability
> 
> This is a build with
> 
> $ grep '\(SPVW_\|GENERA\)' lispbibl.h
> #define NO_GENERATIONAL_GC 1
> #define SPVW_MIXED 
> #define SPVW_PAGES 
> 
> Here I get a crash in "make check-tests"
> 
> (TEST-FLOAT-IO-CONSISTENCY :FROM 1.0s-30 :BY 10 :TO 1.0s30 :REPEAT 100)
> Makefile:25: recipe for target 'tests' failed
> make[1]: *** [tests] Segmentation fault (core dumped)

I've fixed this one now.

The recipe to reproduce it was:

- Use the build-porting64-gcc-debug_gcsafety build,
  with modified CFLAGS: Originally
  CFLAGS = ... -ggdb -O0 -DDEBUG_OS_ERROR -DDEBUG_SPVW -DDEBUG_BYTECODE -DSAFETY=3 -DDEBUG_GCSAFETY -DENABLE_UNICODE -DDYNAMIC_FFI
  Add to CFLAGS for MIXED_BLOCKS or MIXED_PAGES memory model: -DNO_ADDRESS_SPACE_ASSUMPTIONS

- Run ./clisp and enter:

(defun test-float-io-consistency (&key from to by repeat)
  (loop :for max = from :then (* by max) :while (< max to) :nconc
    (loop :repeat repeat :for x = (random max)
      :for y = (if (zerop (random 2)) x (- x))
      :unless (= y (read-from-string (prin1-to-string y)))
      :collect (cons y (multiple-value-list (integer-decode-float y))))))
(compile *)

(test-float-io-consistency :from 1s-30 :by 10 :to 1s30 :repeat 1000)

It crashes in the GC because make_machine_code is being invoked on a function
pointer that does not have the necessary alignment.

I've now
  - added a check to make_machine_code (if SAFETY >= 2),
  - eliminated the wrong invocations of make_machine_code.

Bruno


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.