GNU bug report logs -
#62590
Strange put-char encoding-error "conversion to port encoding failed"
Previous Next
Full log
Message #14 received at 62590 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Christopher Baines <mail <at> cbaines.net> writes:
> Christopher Baines <mail <at> cbaines.net> writes:
>
>> I've been seeing some strange occasional errors for a while now.
>
> ...
>
>> I'm not sure what the 84 means? If I'm picking out the characters that
>> have failed to be encoded, I'm not sure why some of these would fail
>> (like space or w)?
>>
>> Unfortunately I'm not sure how to reproduce this. Suspendable ports
>> might be a factor here as that is probably in use.
>
> Still seeing these errors, including today. I've managed to stumble on a
> reliable and somewhat minimal way of reproducing them:
Here's a slightly simplified version with some comments:
[put-char-exn.scm (text/plain, inline)]
(use-modules (ice-9 binary-ports)
(rnrs bytevectors)
(ice-9 exceptions)
(ice-9 threads)
(system repl debug))
(setvbuf (current-output-port) 'line)
(setvbuf (current-error-port) 'line)
(simple-format (current-error-port)
"current-output-port: ~A (encoding: ~A)\n\n"
(current-output-port)
(port-encoding (current-output-port)))
(for-each
(lambda (i)
(call-with-new-thread
(lambda ()
(with-exception-handler
(lambda (exn)
(let ((stack (make-stack #t)))
(print-frames (stack->vector stack)
(current-error-port)
#:count (stack-length stack))
(print-exception
(current-error-port)
(stack-ref stack 3)
'%exception
(list exn)))
(force-output (current-error-port))
(primitive-exit 1))
(lambda ()
(while #t
(with-exception-handler
(lambda (exn)
;; The put-char error seems to happen around here
(simple-format (current-output-port)
"exception: ~A\n"
exn)
#f)
(lambda ()
(with-throw-handler #t
(lambda ()
;; Cause some error, I think any error will do
(+ 'a 1))
(lambda (key . args)
(let* ((stack (make-stack #t 3))
(backtrace
(call-with-output-string
(lambda (port)
(display-backtrace stack port)
(newline port)))))
(display
;; Printing the backtrace seems significant,
;; other strings don't seem to reproduce the
;; behaviour
backtrace
(current-output-port))
#f))))
#:unwind? #t)))))))
(iota 2))
(sleep 60)
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 121 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.