GNU bug report logs - #52975
[PATCH] gnu: guile-ssh: Update to 0.15.0

Previous Next

Package: guix-patches;

Reported by: poptsov.artyom <at> gmail.com (Artyom V. Poptsov)

Date: Mon, 3 Jan 2022 11:07:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 52975 in the body.
You can then email your comments to 52975 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#52975; Package guix-patches. (Mon, 03 Jan 2022 11:07:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to poptsov.artyom <at> gmail.com (Artyom V. Poptsov):
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 03 Jan 2022 11:07:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: poptsov.artyom <at> gmail.com (Artyom V. Poptsov)
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: guile-ssh: Update to 0.15.0
Date: Mon, 03 Jan 2022 14:06:18 +0300
[Message part 1 (text/plain, inline)]
Hello,

this patch updates Guile-SSH[1] to version 0.15.0.

In Guile-SSH 0.15.0 I fixed libguile-ssh library version that I forgot
to bump before the 0.14.0. Now the library version is properly bumped to
"0:14:0" according to libtool rules.

Also I removed a hidden build-time dependency on 'whereis' program from
'util-linux' package.

Note that I haven't properly tested GNU Guix with the new release of
Guile-SSH.

As Guix itself uses Guile-SSH and my update may break something, please
check if it works as expected before merging the update and report any
bugs to me.

- Artyom

References:
1: https://github.com/artyom-poptsov/guile-ssh
[0001-gnu-guile-ssh-Update-to-0.15.0.patch (text/x-diff, attachment)]
[Message part 3 (text/plain, inline)]
-- 
Artyom "avp" Poptsov <poptsov.artyom <at> gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#52975; Package guix-patches. (Thu, 06 Jan 2022 11:38:01 GMT) Full text and rfc822 format available.

Message #8 received at 52975 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: poptsov.artyom <at> gmail.com (Artyom V. Poptsov)
Cc: 52975 <at> debbugs.gnu.org
Subject: Re: bug#52975: [PATCH] gnu: guile-ssh: Update to 0.15.0
Date: Thu, 06 Jan 2022 12:37:19 +0100
Hi Artyom,

poptsov.artyom <at> gmail.com (Artyom V. Poptsov) skribis:

> Note that I haven't properly tested GNU Guix with the new release of
> Guile-SSH.
>
> As Guix itself uses Guile-SSH and my update may break something, please
> check if it works as expected before merging the update and report any
> bugs to me.

I tested it on x86_64-linux and quickly got a segfault:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix offload test
guix offload: testing 3 build machines defined in '/etc/guix/machines.scm'...
guix offload: Guix is usable on 'overdrive1.guix.gnu.org' (test returned "/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
guix offload: Guix is usable on 'localhost' (test returned "/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")

[...]

Backtrace:
In ice-9/boot-9.scm:
    724:2 19 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
In ice-9/eval.scm:
    619:8 18 (_ #(#(#<directory (guile-user) 7f439cd99c80>)))
In guix/ui.scm:
   2206:7 17 (run-guix . _)
  2169:10 16 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 15 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In guix/scripts/offload.scm:
    724:6 14 (check-machine-availability _ _)
In srfi/srfi-1.scm:
   669:15 13 (for-each #<procedure assert-node-can-import (session node name daemon-socket)> (#<session hydra <at> o…> …) …)
In ice-9/boot-9.scm:
  1752:10 12 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In guix/store.scm:
   658:37 11 (thunk)
In guix/scripts/offload.scm:
    683:6 10 (_ _)
In ice-9/boot-9.scm:
  1752:10  9 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In guix/store.scm:
   658:37  8 (thunk)
In guix/ssh.scm:
    370:2  7 (send-files #<store-connection 256.99 7f4398a324b0> _ #<store-connection 256.99 7f4398a32500> # _ # _)
    219:2  6 (remote-run (begin (use-modules (guix) (srfi srfi-34) (rnrs io ports) (rnrs bytevectors)) (define …) …) …)
In ice-9/read.scm:
   850:12  5 (%read #<input-output: channel (open) 7f4398a599a0> #<procedure 7f4398a49640 at ice-9/read.scm:859:8 …> …)
   118:17  4 (next-non-whitespace)
In unknown file:
           3 (read-char #<input-output: channel (open) 7f4398a599a0>)
In ice-9/boot-9.scm:
  1685:16  2 (raise-exception _ #:continuable? _)
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Adres-eraro(nekropsio elŝutita)
$ gdb ./guile core
GNU gdb (GDB) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./guile...

warning: Can't open file /var/db/nscd/hosts during file-backed mapping note processing

warning: core file may not match specified executable file.
[New LWP 27814]
[New LWP 27818]
[New LWP 27821]
[New LWP 27820]
[New LWP 27819]
[New LWP 27822]
Warning: couldn't activate thread debugging using libthread_db: Cannot find new threads: generic error

warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/gnu/store/2fk1gz2s7ppdicynscra9b19byrrr866-glibc-2.33/lib/libthread_db.so.1".
Core was generated by `/home/ludo/src/guix/guile \ /home/ludo/src/guix/scripts/guix offload test'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  scm_ipruk (hdr=0x7f439f4b4132 "immediate", ptr=0x7000700070007, port=0x7f4397cf9c80) at print.c:969
969	print.c: Dosiero aŭ dosierujo ne ekzistas.
[Current thread is 1 (Thread 0x7f439ee26740 (LWP 27814))]
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm
;;; /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm:293:20: warning: possibly unbound variable `program-debug-info-name'
;;; /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm:326:9: warning: possibly unbound variable `find-source-for-addr'
;;; /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm:326:31: warning: possibly unbound variable `program-debug-info-addr'
;;; /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm:327:31: warning: possibly unbound variable `program-debug-info-context'
;;; compiled /home/ludo/.cache/guile/ccache/3.0-LE-8-4.2/gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm.go
;;; compiling /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/share/guile/3.0/system/base/types.scm
;;; compiled /home/ludo/.cache/guile/ccache/3.0-LE-8-4.2/gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/share/guile/3.0/system/base/types.scm.go
(gdb) bt
#0  scm_ipruk (hdr=0x7f439f4b4132 "immediate", ptr=unmatched-scm, 
    port=#<port #<port-type string 7f439cc8bab0> 7f4397cf9c80>) at print.c:969
#1  0x00007f439f46f617 in scm_i_variable_print (exp=#<variable 201b010>, 
    port=#<port #<port-type string 7f439cc8bab0> 7f4397cf9c80>, pstate=0x7f439793d938) at variable.c:46
#2  0x00007f439f4447dc in scm_prin1 (exp=exp <at> entry=#<variable 201b010>, 
    port=port <at> entry=#<port #<port-type string 7f439cc8bab0> 7f4397cf9c80>, writingp=writingp <at> entry=1) at print.c:840
#3  0x00007f439f4456d2 in scm_write (obj=obj <at> entry=#<variable 201b010>, 
    port=port <at> entry=#<port #<port-type string 7f439cc8bab0> 7f4397cf9c80>) at print.c:1099
#4  0x00007f439f469b99 in scm_object_to_string (obj=#<variable 201b010>, printer=<optimized out>) at strports.c:249
#5  0x00007f439f476915 in vm_regular_engine (thread=0x7f439eb00d80) at vm-engine.c:972
#6  0x00007f439f479029 in scm_call_n (proc=<optimized out>, argv=argv <at> entry=0x7ffc66910a30, nargs=nargs <at> entry=4)
    at vm.c:1608
#7  0x00007f439f3f2e54 in scm_call_4 (proc=<optimized out>, 
    arg1=arg1 <at> entry=#<port #<port-type file 7f439cc8bb40> 7f439ccdab40>, arg2=arg2 <at> entry=#<unmatched-tag 12f>, 
    arg3=arg3 <at> entry=wrong-type-arg, 
    arg4=arg4 <at> entry=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>))) at eval.c:517
#8  0x00007f439f3e569f in scm_print_exception (port=port <at> entry=#<port #<port-type file 7f439cc8bb40> 7f439ccdab40>, 
    frame=frame <at> entry=#<unmatched-tag 12f>, key=key <at> entry=wrong-type-arg, 
    args=args <at> entry=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>))) at backtrace.c:121
#9  0x00007f439f3edd86 in print_exception_and_backtrace (
    args=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>)), tag=wrong-type-arg, port=#<port #<port-type file 7f439cc8bb40> 7f439ccdab40>)
    at continuations.c:415
#10 pre_unwind_handler (error_port=0x7f439ccdab40, tag=wrong-type-arg, 
    args=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>))) at continuations.c:453
#11 0x00007f439f46e80a in catch_pre_unwind_handler (data=0x7ffc669128f0, exn="#<struct &compound-exception>" = {...})
    at throw.c:135
#12 0x00007f439f476915 in vm_regular_engine (thread=0x7f439eb00d80) at vm-engine.c:972
#13 0x00007f439f479029 in scm_call_n (proc=proc <at> entry=#<program 7f439cd0b620>, argv=<optimized out>, nargs=5)
    at vm.c:1608
#14 0x00007f439f3f3151 in scm_apply_0 (proc=#<program 7f439cd0b620>, args=()) at eval.c:603
#15 0x00007f439f3f3d3d in scm_apply_1 (proc=<optimized out>, arg1=arg1 <at> entry=wrong-type-arg, 
    args=args <at> entry=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>))) at eval.c:609
#16 0x00007f439f46eca7 in scm_throw (key=key <at> entry=wrong-type-arg, 
    args=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>))) at throw.c:262
#17 0x00007f439f46edf9 in scm_ithrow (key=key <at> entry=wrong-type-arg, args=<optimized out>, 
    no_return=no_return <at> entry=1) at throw.c:457
#18 0x00007f439f3f12e5 in scm_error_scm (key=key <at> entry=wrong-type-arg, subr=<optimized out>, 
    message=message <at> entry="Wrong type argument in position ~A (expecting ~A): ~S", 
    args=args <at> entry=(1 "channel-port" #<variable 201b010>), data=data <at> entry=(#<variable 201b010>)) at error.c:90
#19 0x00007f439f3f1380 in scm_error (key=wrong-type-arg, subr=subr <at> entry=0x7f4399385700 "gssh_channel_from_scm", 
    message=message <at> entry=0x7f439f4afc90 "Wrong type argument in position ~A (expecting ~A): ~S", 
    args=(1 "channel-port" #<variable 201b010>), rest=rest <at> entry=(#<variable 201b010>)) at error.c:62
#20 0x00007f439f3f1740 in scm_wrong_type_arg_msg (subr=0x7f4399385700 "gssh_channel_from_scm", pos=1, 
    bad_value=#<variable 201b010>, szMessage=<optimized out>) at error.c:282
#21 0x00007f439937fe0f in gssh_channel_from_scm ()
   from /gnu/store/3ckynw84w4lgx5ys9v8pkhdxh6b1cx5n-guile-ssh-0.15.0/lib/libguile-ssh.so
#22 0x00007f439937fe1c in ?? () from /gnu/store/3ckynw84w4lgx5ys9v8pkhdxh6b1cx5n-guile-ssh-0.15.0/lib/libguile-ssh.so
#23 0x00007f43992fae5e in channel_rcv_close (session=0x20d6600, type=<optimized out>, packet=<optimized out>, 
    user=<optimized out>) at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/channels.c:689
#24 0x00007f43993100f1 in ssh_packet_process (session=session <at> entry=0x20d6600, type=97 'a')
    at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/packet.c:1494
#25 0x00007f4399310897 in ssh_packet_socket_callback (data=data <at> entry=0x20db2c4, receivedlen=receivedlen <at> entry=36, 
    user=user <at> entry=0x20d6600) at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/packet.c:1336
#26 0x00007f4399310d04 in ssh_packet_socket_callback (data=0x20db290, receivedlen=88, user=0x20d6600)
    at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/packet.c:1358
#27 0x00007f439931aaf8 in ssh_socket_pollcallback (p=<optimized out>, fd=<optimized out>, revents=<optimized out>, 
    v_s=0x20d6fb0) at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/socket.c:314
#28 0x00007f4399316e43 in ssh_poll_ctx_dopoll (ctx=ctx <at> entry=0x20d84f0, timeout=timeout <at> entry=-1)
    at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/poll.c:702
#29 0x00007f4399317f0c in ssh_handle_packets (session=session <at> entry=0x20d6600, timeout=timeout <at> entry=-1)
    at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/session.c:661
#30 0x00007f4399317fdb in ssh_handle_packets_termination (session=session <at> entry=0x20d6600, timeout=timeout <at> entry=-1, 
    fct=fct <at> entry=0x7f43992f8f10 <ssh_channel_read_termination>, user=user <at> entry=0x7ffc66912040)
    at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/session.c:730
#31 0x00007f43992fc421 in ssh_channel_read_timeout (channel=0x22d49e0, dest=0x7f4398a65d10, count=1, 
    is_stderr=<optimized out>, timeout_ms=<optimized out>)
    at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/channels.c:2931
#32 0x00007f4399380147 in ?? () from /gnu/store/3ckynw84w4lgx5ys9v8pkhdxh6b1cx5n-guile-ssh-0.15.0/lib/libguile-ssh.so
#33 0x00007f439f43d7d2 in scm_i_read_bytes (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
    dst="#<vu8vector>" = {...}, start=start <at> entry=0, count=1) at ports.c:1566
#34 0x00007f439f4419f7 in scm_fill_input (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
    minimum_size=1, minimum_size <at> entry=0, cur_out=cur_out <at> entry=0x7ffc66912170, 
    avail_out=avail_out <at> entry=0x7ffc66912178) at ports.c:2693
#35 0x00007f439f441d14 in peek_byte_or_eof (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
    buf_out=buf_out <at> entry=0x7ffc669121c8, cur_out=cur_out <at> entry=0x7ffc669121d0) at ports.c:1526
#36 0x00007f439f441da5 in maybe_consume_bom (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
    bom=bom <at> entry=0x7f439f4b8776 <scm_utf8_bom> "", bom_len=bom_len <at> entry=3) at ports.c:2468
#37 0x00007f439f441b54 in port_clear_stream_start_for_bom_read (io_mode=BOM_IO_TEXT, 
    port=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>) at ports.c:2504
#38 scm_fill_input (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, minimum_size=1, 
    minimum_size <at> entry=0, cur_out=cur_out <at> entry=0x7ffc66912270, avail_out=avail_out <at> entry=0x7ffc66912278)
    at ports.c:2648
#39 0x00007f439f441d14 in peek_byte_or_eof (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
    buf_out=buf_out <at> entry=0x7ffc669122c8, cur_out=cur_out <at> entry=0x7ffc669122d0) at ports.c:1526
#40 0x00007f439f441e4c in peek_utf8_codepoint (port=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
    buf_out=buf_out <at> entry=0x7ffc66912338, cur_out=cur_out <at> entry=0x7ffc66912330, len_out=len_out <at> entry=0x7ffc66912328)
    at ports.c:1790
#41 0x00007f439f442594 in peek_codepoint (len=0x7ffc66912328, cur=0x7ffc66912330, buf=0x7ffc66912338, 
    port=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>) at ports.c:1984
#42 scm_getc (port=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>) at ports.c:2001
#43 0x00007f439f4425e8 in scm_read_char (port=<optimized out>) at ports.c:2026
#44 0x00007f439caa5b7b in ?? ()
#45 0x00007f439cb7d724 in ?? ()
#46 0x00007f43993d3320 in ?? ()
#47 0x00000000020e4ed8 in ?? ()
#48 0x00007f439f41cb1c in scm_jit_enter_mcode (thread=thread <at> entry=0x7f439eb00d80, mcode=0x205b8b8 "\034\232\003")
    at jit.c:6038
#49 0x00007f439f476512 in vm_regular_engine (thread=0x7f439eb00d80) at vm-engine.c:360
#50 0x00007f439f479029 in scm_call_n (proc=<optimized out>, argv=argv <at> entry=0x7ffc66912558, nargs=nargs <at> entry=1)
    at vm.c:1608
#51 0x00007f439f3f3ea7 in scm_primitive_eval (exp=<optimized out>, 
    exp <at> entry=((@ (ice-9 control) %) (begin ((@@ (ice-9 command-line) load/lang) "/home/ludo/src/guix/scripts/guix") (main (command-line)) (quit)))) at eval.c:671
#52 0x00007f439f3f3f06 in scm_eval (
    exp=((@ (ice-9 control) %) (begin ((@@ (ice-9 command-line) load/lang) "/home/ludo/src/guix/scripts/guix") (main (command-line)) (quit))), module_or_state=module_or_state <at> entry="#<struct module>" = {...}) at eval.c:705
#53 0x00007f439f44ee76 in scm_shell (argc=8, argv=0x206aca0) at script.c:357
#54 0x00007f439f40c36d in invoke_main_func (body_data=0x7ffc66912a80) at init.c:313
#55 0x00007f439f3edbea in c_body (d=0x7ffc669129c0) at continuations.c:430
#56 0x00007f439f476915 in vm_regular_engine (thread=0x7f439eb00d80) at vm-engine.c:972
#57 0x00007f439f479029 in scm_call_n (proc=<optimized out>, argv=argv <at> entry=0x7ffc66912780, nargs=nargs <at> entry=2)
    at vm.c:1608
#58 0x00007f439f3f2dfa in scm_call_2 (proc=<optimized out>, arg1=<optimized out>, arg2=<optimized out>) at eval.c:503
#59 0x00007f439f3f4529 in scm_c_with_exception_handler (type=type <at> entry=#t, 
    handler=handler <at> entry=0x7f439f46e750 <catch_post_unwind_handler>, 
    handler_data=handler_data <at> entry=0x7ffc669128f0, thunk=thunk <at> entry=0x7f439f46e890 <catch_body>, 
    thunk_data=thunk_data <at> entry=0x7ffc669128f0) at exceptions.c:170
#60 0x00007f439f46ea8d in scm_c_catch (tag=tag <at> entry=#t, body=body <at> entry=0x7f439f3edbe0 <c_body>, 
    body_data=body_data <at> entry=0x7ffc669129c0, handler=handler <at> entry=0x7f439f3ede80 <c_handler>, 
    handler_data=handler_data <at> entry=0x7ffc669129c0, 
    pre_unwind_handler=pre_unwind_handler <at> entry=0x7f439f3edcd0 <pre_unwind_handler>, 
    pre_unwind_handler_data=0x7f439ccdab40) at throw.c:168
#61 0x00007f439f3ee238 in scm_i_with_continuation_barrier (body=0x7f439f3edbe0 <c_body>, body_data=0x7ffc669129c0, 
    handler=0x7f439f3ede80 <c_handler>, handler_data=0x7ffc669129c0, 
    pre_unwind_handler=0x7f439f3edcd0 <pre_unwind_handler>, pre_unwind_handler_data=0x7f439ccdab40)
    at continuations.c:368
#62 0x00007f439f3ee295 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>)
    at continuations.c:464
#63 0x00007f439f46d549 in with_guile (base=base <at> entry=0x7ffc66912a28, data=data <at> entry=0x7ffc66912a50)
    at threads.c:645
#64 0x00007f439f34a0ba in GC_call_with_stack_base (fn=fn <at> entry=0x7f439f46d470 <with_guile>, 
    arg=arg <at> entry=0x7ffc66912a50) at extra/../misc.c:2106
#65 0x00007f439f46d848 in scm_i_with_guile (dynamic_state=<optimized out>, data=data <at> entry=0x7ffc66912a30, 
    func=func <at> entry=0x7f439f40c350 <invoke_main_func>) at threads.c:688
#66 scm_with_guile (func=func <at> entry=0x7f439f40c350 <invoke_main_func>, data=data <at> entry=0x7ffc66912a80)
    at threads.c:694
#67 0x00007f439f40c4e2 in scm_boot_guile (argc=argc <at> entry=5, argv=argv <at> entry=0x7ffc66912bd8, 
    main_func=main_func <at> entry=0x401290 <inner_main>, closure=closure <at> entry=0x0) at init.c:296
#68 0x0000000000401191 in main (argc=5, argv=0x7ffc66912bd8) at gnu/packages/aux-files/guile-launcher.c:93
--8<---------------cut here---------------end--------------->8---

The segfault itself might be a Guile bug showing up while printing the
backtrace.  It would seem that the core issue is the SSH channel being
closed unexpected, leading to a wrong-type-arg error in Guile-SSH
(frames 19 to 23).

Does that ring a bell?

Thanks in advance,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#52975; Package guix-patches. (Wed, 26 Jan 2022 14:45:01 GMT) Full text and rfc822 format available.

Message #11 received at 52975 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: poptsov.artyom <at> gmail.com (Artyom V. Poptsov)
Cc: 52975 <at> debbugs.gnu.org
Subject: Re: bug#52975: [PATCH] gnu: guile-ssh: Update to 0.15.0
Date: Wed, 26 Jan 2022 15:44:28 +0100
Hi Artyom,

Did you have a chance to look into it?  Would be nice to make sure Guix
can use the latest and greatest Guile-SSH!

Ludo’.

Ludovic Courtès <ludo <at> gnu.org> skribis:

> Hi Artyom,
>
> poptsov.artyom <at> gmail.com (Artyom V. Poptsov) skribis:
>
>> Note that I haven't properly tested GNU Guix with the new release of
>> Guile-SSH.
>>
>> As Guix itself uses Guile-SSH and my update may break something, please
>> check if it works as expected before merging the update and report any
>> bugs to me.
>
> I tested it on x86_64-linux and quickly got a segfault:
>
> $ ./pre-inst-env guix offload test
> guix offload: testing 3 build machines defined in '/etc/guix/machines.scm'...
> guix offload: Guix is usable on 'overdrive1.guix.gnu.org' (test returned "/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
> guix offload: Guix is usable on 'localhost' (test returned "/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
>
> [...]
>
> Backtrace:
> In ice-9/boot-9.scm:
>     724:2 19 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
> In ice-9/eval.scm:
>     619:8 18 (_ #(#(#<directory (guile-user) 7f439cd99c80>)))
> In guix/ui.scm:
>    2206:7 17 (run-guix . _)
>   2169:10 16 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
>   1752:10 15 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
> In guix/scripts/offload.scm:
>     724:6 14 (check-machine-availability _ _)
> In srfi/srfi-1.scm:
>    669:15 13 (for-each #<procedure assert-node-can-import (session node name daemon-socket)> (#<session hydra <at> o…> …) …)
> In ice-9/boot-9.scm:
>   1752:10 12 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
> In guix/store.scm:
>    658:37 11 (thunk)
> In guix/scripts/offload.scm:
>     683:6 10 (_ _)
> In ice-9/boot-9.scm:
>   1752:10  9 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
> In guix/store.scm:
>    658:37  8 (thunk)
> In guix/ssh.scm:
>     370:2  7 (send-files #<store-connection 256.99 7f4398a324b0> _ #<store-connection 256.99 7f4398a32500> # _ # _)
>     219:2  6 (remote-run (begin (use-modules (guix) (srfi srfi-34) (rnrs io ports) (rnrs bytevectors)) (define …) …) …)
> In ice-9/read.scm:
>    850:12  5 (%read #<input-output: channel (open) 7f4398a599a0> #<procedure 7f4398a49640 at ice-9/read.scm:859:8 …> …)
>    118:17  4 (next-non-whitespace)
> In unknown file:
>            3 (read-char #<input-output: channel (open) 7f4398a599a0>)
> In ice-9/boot-9.scm:
>   1685:16  2 (raise-exception _ #:continuable? _)
>   1685:16  1 (raise-exception _ #:continuable? _)
>   1685:16  0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> Adres-eraro(nekropsio elŝutita)
> $ gdb ./guile core
> GNU gdb (GDB) 10.2
> Copyright (C) 2021 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Type "show copying" and "show warranty" for details.
> This GDB was configured as "x86_64-unknown-linux-gnu".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <https://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
>     <http://www.gnu.org/software/gdb/documentation/>.
>
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from ./guile...
>
> warning: Can't open file /var/db/nscd/hosts during file-backed mapping note processing
>
> warning: core file may not match specified executable file.
> [New LWP 27814]
> [New LWP 27818]
> [New LWP 27821]
> [New LWP 27820]
> [New LWP 27819]
> [New LWP 27822]
> Warning: couldn't activate thread debugging using libthread_db: Cannot find new threads: generic error
>
> warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/gnu/store/2fk1gz2s7ppdicynscra9b19byrrr866-glibc-2.33/lib/libthread_db.so.1".
> Core was generated by `/home/ludo/src/guix/guile \ /home/ludo/src/guix/scripts/guix offload test'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0  scm_ipruk (hdr=0x7f439f4b4132 "immediate", ptr=0x7000700070007, port=0x7f4397cf9c80) at print.c:969
> 969	print.c: Dosiero aŭ dosierujo ne ekzistas.
> [Current thread is 1 (Thread 0x7f439ee26740 (LWP 27814))]
> ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
> ;;;       or pass the --no-auto-compile argument to disable.
> ;;; compiling /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm
> ;;; /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm:293:20: warning: possibly unbound variable `program-debug-info-name'
> ;;; /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm:326:9: warning: possibly unbound variable `find-source-for-addr'
> ;;; /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm:326:31: warning: possibly unbound variable `program-debug-info-addr'
> ;;; /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm:327:31: warning: possibly unbound variable `program-debug-info-context'
> ;;; compiled /home/ludo/.cache/guile/ccache/3.0-LE-8-4.2/gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/lib/libguile-3.0.so.1.4.0-gdb.scm.go
> ;;; compiling /gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/share/guile/3.0/system/base/types.scm
> ;;; compiled /home/ludo/.cache/guile/ccache/3.0-LE-8-4.2/gnu/store/3h3jn0745ngd87zp83k5smwhykxvdfgf-guile-3.0.7/share/guile/3.0/system/base/types.scm.go
> (gdb) bt
> #0  scm_ipruk (hdr=0x7f439f4b4132 "immediate", ptr=unmatched-scm, 
>     port=#<port #<port-type string 7f439cc8bab0> 7f4397cf9c80>) at print.c:969
> #1  0x00007f439f46f617 in scm_i_variable_print (exp=#<variable 201b010>, 
>     port=#<port #<port-type string 7f439cc8bab0> 7f4397cf9c80>, pstate=0x7f439793d938) at variable.c:46
> #2  0x00007f439f4447dc in scm_prin1 (exp=exp <at> entry=#<variable 201b010>, 
>     port=port <at> entry=#<port #<port-type string 7f439cc8bab0> 7f4397cf9c80>, writingp=writingp <at> entry=1) at print.c:840
> #3  0x00007f439f4456d2 in scm_write (obj=obj <at> entry=#<variable 201b010>, 
>     port=port <at> entry=#<port #<port-type string 7f439cc8bab0> 7f4397cf9c80>) at print.c:1099
> #4  0x00007f439f469b99 in scm_object_to_string (obj=#<variable 201b010>, printer=<optimized out>) at strports.c:249
> #5  0x00007f439f476915 in vm_regular_engine (thread=0x7f439eb00d80) at vm-engine.c:972
> #6  0x00007f439f479029 in scm_call_n (proc=<optimized out>, argv=argv <at> entry=0x7ffc66910a30, nargs=nargs <at> entry=4)
>     at vm.c:1608
> #7  0x00007f439f3f2e54 in scm_call_4 (proc=<optimized out>, 
>     arg1=arg1 <at> entry=#<port #<port-type file 7f439cc8bb40> 7f439ccdab40>, arg2=arg2 <at> entry=#<unmatched-tag 12f>, 
>     arg3=arg3 <at> entry=wrong-type-arg, 
>     arg4=arg4 <at> entry=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>))) at eval.c:517
> #8  0x00007f439f3e569f in scm_print_exception (port=port <at> entry=#<port #<port-type file 7f439cc8bb40> 7f439ccdab40>, 
>     frame=frame <at> entry=#<unmatched-tag 12f>, key=key <at> entry=wrong-type-arg, 
>     args=args <at> entry=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>))) at backtrace.c:121
> #9  0x00007f439f3edd86 in print_exception_and_backtrace (
>     args=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>)), tag=wrong-type-arg, port=#<port #<port-type file 7f439cc8bb40> 7f439ccdab40>)
>     at continuations.c:415
> #10 pre_unwind_handler (error_port=0x7f439ccdab40, tag=wrong-type-arg, 
>     args=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>))) at continuations.c:453
> #11 0x00007f439f46e80a in catch_pre_unwind_handler (data=0x7ffc669128f0, exn="#<struct &compound-exception>" = {...})
>     at throw.c:135
> #12 0x00007f439f476915 in vm_regular_engine (thread=0x7f439eb00d80) at vm-engine.c:972
> #13 0x00007f439f479029 in scm_call_n (proc=proc <at> entry=#<program 7f439cd0b620>, argv=<optimized out>, nargs=5)
>     at vm.c:1608
> #14 0x00007f439f3f3151 in scm_apply_0 (proc=#<program 7f439cd0b620>, args=()) at eval.c:603
> #15 0x00007f439f3f3d3d in scm_apply_1 (proc=<optimized out>, arg1=arg1 <at> entry=wrong-type-arg, 
>     args=args <at> entry=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>))) at eval.c:609
> #16 0x00007f439f46eca7 in scm_throw (key=key <at> entry=wrong-type-arg, 
>     args=("gssh_channel_from_scm" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "channel-port" #<variable 201b010>) (#<variable 201b010>))) at throw.c:262
> #17 0x00007f439f46edf9 in scm_ithrow (key=key <at> entry=wrong-type-arg, args=<optimized out>, 
>     no_return=no_return <at> entry=1) at throw.c:457
> #18 0x00007f439f3f12e5 in scm_error_scm (key=key <at> entry=wrong-type-arg, subr=<optimized out>, 
>     message=message <at> entry="Wrong type argument in position ~A (expecting ~A): ~S", 
>     args=args <at> entry=(1 "channel-port" #<variable 201b010>), data=data <at> entry=(#<variable 201b010>)) at error.c:90
> #19 0x00007f439f3f1380 in scm_error (key=wrong-type-arg, subr=subr <at> entry=0x7f4399385700 "gssh_channel_from_scm", 
>     message=message <at> entry=0x7f439f4afc90 "Wrong type argument in position ~A (expecting ~A): ~S", 
>     args=(1 "channel-port" #<variable 201b010>), rest=rest <at> entry=(#<variable 201b010>)) at error.c:62
> #20 0x00007f439f3f1740 in scm_wrong_type_arg_msg (subr=0x7f4399385700 "gssh_channel_from_scm", pos=1, 
>     bad_value=#<variable 201b010>, szMessage=<optimized out>) at error.c:282
> #21 0x00007f439937fe0f in gssh_channel_from_scm ()
>    from /gnu/store/3ckynw84w4lgx5ys9v8pkhdxh6b1cx5n-guile-ssh-0.15.0/lib/libguile-ssh.so
> #22 0x00007f439937fe1c in ?? () from /gnu/store/3ckynw84w4lgx5ys9v8pkhdxh6b1cx5n-guile-ssh-0.15.0/lib/libguile-ssh.so
> #23 0x00007f43992fae5e in channel_rcv_close (session=0x20d6600, type=<optimized out>, packet=<optimized out>, 
>     user=<optimized out>) at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/channels.c:689
> #24 0x00007f43993100f1 in ssh_packet_process (session=session <at> entry=0x20d6600, type=97 'a')
>     at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/packet.c:1494
> #25 0x00007f4399310897 in ssh_packet_socket_callback (data=data <at> entry=0x20db2c4, receivedlen=receivedlen <at> entry=36, 
>     user=user <at> entry=0x20d6600) at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/packet.c:1336
> #26 0x00007f4399310d04 in ssh_packet_socket_callback (data=0x20db290, receivedlen=88, user=0x20d6600)
>     at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/packet.c:1358
> #27 0x00007f439931aaf8 in ssh_socket_pollcallback (p=<optimized out>, fd=<optimized out>, revents=<optimized out>, 
>     v_s=0x20d6fb0) at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/socket.c:314
> #28 0x00007f4399316e43 in ssh_poll_ctx_dopoll (ctx=ctx <at> entry=0x20d84f0, timeout=timeout <at> entry=-1)
>     at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/poll.c:702
> #29 0x00007f4399317f0c in ssh_handle_packets (session=session <at> entry=0x20d6600, timeout=timeout <at> entry=-1)
>     at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/session.c:661
> #30 0x00007f4399317fdb in ssh_handle_packets_termination (session=session <at> entry=0x20d6600, timeout=timeout <at> entry=-1, 
>     fct=fct <at> entry=0x7f43992f8f10 <ssh_channel_read_termination>, user=user <at> entry=0x7ffc66912040)
>     at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/session.c:730
> #31 0x00007f43992fc421 in ssh_channel_read_timeout (channel=0x22d49e0, dest=0x7f4398a65d10, count=1, 
>     is_stderr=<optimized out>, timeout_ms=<optimized out>)
>     at /tmp/guix-build-libssh-0.9.6.drv-0/libssh-0.9.6/src/channels.c:2931
> #32 0x00007f4399380147 in ?? () from /gnu/store/3ckynw84w4lgx5ys9v8pkhdxh6b1cx5n-guile-ssh-0.15.0/lib/libguile-ssh.so
> #33 0x00007f439f43d7d2 in scm_i_read_bytes (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
>     dst="#<vu8vector>" = {...}, start=start <at> entry=0, count=1) at ports.c:1566
> #34 0x00007f439f4419f7 in scm_fill_input (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
>     minimum_size=1, minimum_size <at> entry=0, cur_out=cur_out <at> entry=0x7ffc66912170, 
>     avail_out=avail_out <at> entry=0x7ffc66912178) at ports.c:2693
> #35 0x00007f439f441d14 in peek_byte_or_eof (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
>     buf_out=buf_out <at> entry=0x7ffc669121c8, cur_out=cur_out <at> entry=0x7ffc669121d0) at ports.c:1526
> #36 0x00007f439f441da5 in maybe_consume_bom (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
>     bom=bom <at> entry=0x7f439f4b8776 <scm_utf8_bom> "", bom_len=bom_len <at> entry=3) at ports.c:2468
> #37 0x00007f439f441b54 in port_clear_stream_start_for_bom_read (io_mode=BOM_IO_TEXT, 
>     port=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>) at ports.c:2504
> #38 scm_fill_input (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, minimum_size=1, 
>     minimum_size <at> entry=0, cur_out=cur_out <at> entry=0x7ffc66912270, avail_out=avail_out <at> entry=0x7ffc66912278)
>     at ports.c:2648
> #39 0x00007f439f441d14 in peek_byte_or_eof (port=port <at> entry=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
>     buf_out=buf_out <at> entry=0x7ffc669122c8, cur_out=cur_out <at> entry=0x7ffc669122d0) at ports.c:1526
> #40 0x00007f439f441e4c in peek_utf8_codepoint (port=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>, 
>     buf_out=buf_out <at> entry=0x7ffc66912338, cur_out=cur_out <at> entry=0x7ffc66912330, len_out=len_out <at> entry=0x7ffc66912328)
>     at ports.c:1790
> #41 0x00007f439f442594 in peek_codepoint (len=0x7ffc66912328, cur=0x7ffc66912330, buf=0x7ffc66912338, 
>     port=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>) at ports.c:1984
> #42 scm_getc (port=#<port #<port-type channel 7f439cc8b2d0> 7f4398a599a0>) at ports.c:2001
> #43 0x00007f439f4425e8 in scm_read_char (port=<optimized out>) at ports.c:2026
> #44 0x00007f439caa5b7b in ?? ()
> #45 0x00007f439cb7d724 in ?? ()
> #46 0x00007f43993d3320 in ?? ()
> #47 0x00000000020e4ed8 in ?? ()
> #48 0x00007f439f41cb1c in scm_jit_enter_mcode (thread=thread <at> entry=0x7f439eb00d80, mcode=0x205b8b8 "\034\232\003")
>     at jit.c:6038
> #49 0x00007f439f476512 in vm_regular_engine (thread=0x7f439eb00d80) at vm-engine.c:360
> #50 0x00007f439f479029 in scm_call_n (proc=<optimized out>, argv=argv <at> entry=0x7ffc66912558, nargs=nargs <at> entry=1)
>     at vm.c:1608
> #51 0x00007f439f3f3ea7 in scm_primitive_eval (exp=<optimized out>, 
>     exp <at> entry=((@ (ice-9 control) %) (begin ((@@ (ice-9 command-line) load/lang) "/home/ludo/src/guix/scripts/guix") (main (command-line)) (quit)))) at eval.c:671
> #52 0x00007f439f3f3f06 in scm_eval (
>     exp=((@ (ice-9 control) %) (begin ((@@ (ice-9 command-line) load/lang) "/home/ludo/src/guix/scripts/guix") (main (command-line)) (quit))), module_or_state=module_or_state <at> entry="#<struct module>" = {...}) at eval.c:705
> #53 0x00007f439f44ee76 in scm_shell (argc=8, argv=0x206aca0) at script.c:357
> #54 0x00007f439f40c36d in invoke_main_func (body_data=0x7ffc66912a80) at init.c:313
> #55 0x00007f439f3edbea in c_body (d=0x7ffc669129c0) at continuations.c:430
> #56 0x00007f439f476915 in vm_regular_engine (thread=0x7f439eb00d80) at vm-engine.c:972
> #57 0x00007f439f479029 in scm_call_n (proc=<optimized out>, argv=argv <at> entry=0x7ffc66912780, nargs=nargs <at> entry=2)
>     at vm.c:1608
> #58 0x00007f439f3f2dfa in scm_call_2 (proc=<optimized out>, arg1=<optimized out>, arg2=<optimized out>) at eval.c:503
> #59 0x00007f439f3f4529 in scm_c_with_exception_handler (type=type <at> entry=#t, 
>     handler=handler <at> entry=0x7f439f46e750 <catch_post_unwind_handler>, 
>     handler_data=handler_data <at> entry=0x7ffc669128f0, thunk=thunk <at> entry=0x7f439f46e890 <catch_body>, 
>     thunk_data=thunk_data <at> entry=0x7ffc669128f0) at exceptions.c:170
> #60 0x00007f439f46ea8d in scm_c_catch (tag=tag <at> entry=#t, body=body <at> entry=0x7f439f3edbe0 <c_body>, 
>     body_data=body_data <at> entry=0x7ffc669129c0, handler=handler <at> entry=0x7f439f3ede80 <c_handler>, 
>     handler_data=handler_data <at> entry=0x7ffc669129c0, 
>     pre_unwind_handler=pre_unwind_handler <at> entry=0x7f439f3edcd0 <pre_unwind_handler>, 
>     pre_unwind_handler_data=0x7f439ccdab40) at throw.c:168
> #61 0x00007f439f3ee238 in scm_i_with_continuation_barrier (body=0x7f439f3edbe0 <c_body>, body_data=0x7ffc669129c0, 
>     handler=0x7f439f3ede80 <c_handler>, handler_data=0x7ffc669129c0, 
>     pre_unwind_handler=0x7f439f3edcd0 <pre_unwind_handler>, pre_unwind_handler_data=0x7f439ccdab40)
>     at continuations.c:368
> #62 0x00007f439f3ee295 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>)
>     at continuations.c:464
> #63 0x00007f439f46d549 in with_guile (base=base <at> entry=0x7ffc66912a28, data=data <at> entry=0x7ffc66912a50)
>     at threads.c:645
> #64 0x00007f439f34a0ba in GC_call_with_stack_base (fn=fn <at> entry=0x7f439f46d470 <with_guile>, 
>     arg=arg <at> entry=0x7ffc66912a50) at extra/../misc.c:2106
> #65 0x00007f439f46d848 in scm_i_with_guile (dynamic_state=<optimized out>, data=data <at> entry=0x7ffc66912a30, 
>     func=func <at> entry=0x7f439f40c350 <invoke_main_func>) at threads.c:688
> #66 scm_with_guile (func=func <at> entry=0x7f439f40c350 <invoke_main_func>, data=data <at> entry=0x7ffc66912a80)
>     at threads.c:694
> #67 0x00007f439f40c4e2 in scm_boot_guile (argc=argc <at> entry=5, argv=argv <at> entry=0x7ffc66912bd8, 
>     main_func=main_func <at> entry=0x401290 <inner_main>, closure=closure <at> entry=0x0) at init.c:296
> #68 0x0000000000401191 in main (argc=5, argv=0x7ffc66912bd8) at gnu/packages/aux-files/guile-launcher.c:93
>
> The segfault itself might be a Guile bug showing up while printing the
> backtrace.  It would seem that the core issue is the SSH channel being
> closed unexpected, leading to a wrong-type-arg error in Guile-SSH
> (frames 19 to 23).
>
> Does that ring a bell?
>
> Thanks in advance,
> Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#52975; Package guix-patches. (Sat, 12 Feb 2022 16:38:01 GMT) Full text and rfc822 format available.

Message #14 received at 52975 <at> debbugs.gnu.org (full text, mbox):

From: "Artyom V. Poptsov" <poptsov.artyom <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 52975 <at> debbugs.gnu.org
Subject: Re: bug#52975: [PATCH] gnu: guile-ssh: Update to 0.15.0
Date: Sat, 12 Feb 2022 19:37:19 +0300
[Message part 1 (text/plain, inline)]
Hello Ludovic,

sorry for being slow to respond.

It seems that I fixed the error.

--8<---------------cut here---------------start------------->8---
$ cd guix
$ guix shell -D guix
$ ./pre-inst-env guix package --no-offload -f ../../projects/guile-ssh/guix.scm
$ ./pre-inst-env guix offload test
[...]
guix offload: successfully imported '/gnu/store/bf73m6ns9d2v6m4173y0ls5jz9fcxfhv-import-test' [...]
--8<---------------cut here---------------end--------------->8---

Please check this branch:
  https://github.com/artyom-poptsov/guile-ssh/tree/fix-segfault-on-remote-close

and let me know if it works for you.

Thanks,

- Artyom

-- 
Artyom "avp" Poptsov <poptsov.artyom <at> gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#52975; Package guix-patches. (Mon, 28 Feb 2022 10:46:01 GMT) Full text and rfc822 format available.

Message #17 received at 52975 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: "Artyom V. Poptsov" <poptsov.artyom <at> gmail.com>
Cc: 52975 <at> debbugs.gnu.org
Subject: Re: bug#52975: [PATCH] gnu: guile-ssh: Update to 0.15.0
Date: Mon, 28 Feb 2022 11:45:07 +0100
Hi Artyom,

"Artyom V. Poptsov" <poptsov.artyom <at> gmail.com> skribis:

> It seems that I fixed the error.
>
> $ cd guix
> $ guix shell -D guix
> $ ./pre-inst-env guix package --no-offload -f ../../projects/guile-ssh/guix.scm
> $ ./pre-inst-env guix offload test
> [...]
> guix offload: successfully imported '/gnu/store/bf73m6ns9d2v6m4173y0ls5jz9fcxfhv-import-test' [...]
>
> Please check this branch:
>   https://github.com/artyom-poptsov/guile-ssh/tree/fix-segfault-on-remote-close
>
> and let me know if it works for you.

It does!  I tested a few things manually and everything is working as
expected AFAICS (I built Guix with ‘guix build guix
--with-branch=guile-ssh=fix-segfault-on-remote-close’ and then used
‘guix offload test’ and ‘guix copy’ from there.)

Let me know when the new release is out and we can upgrade at that
point.

Thank you!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#52975; Package guix-patches. (Mon, 28 Feb 2022 20:01:01 GMT) Full text and rfc822 format available.

Message #20 received at 52975 <at> debbugs.gnu.org (full text, mbox):

From: "Artyom V. Poptsov" <poptsov.artyom <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 52975 <at> debbugs.gnu.org
Subject: Re: bug#52975: [PATCH] gnu: guile-ssh: Update to 0.15.0
Date: Mon, 28 Feb 2022 23:00:18 +0300
[Message part 1 (text/plain, inline)]
Hello!

I released Guile-SSH 0.15.1:
  https://lists.gnu.org/archive/html/guile-user/2022-02/msg00169.html

- Artyom

-- 
Artyom "avp" Poptsov <poptsov.artyom <at> gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F
[signature.asc (application/pgp-signature, inline)]

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Tue, 01 Mar 2022 17:28:01 GMT) Full text and rfc822 format available.

Notification sent to poptsov.artyom <at> gmail.com (Artyom V. Poptsov):
bug acknowledged by developer. (Tue, 01 Mar 2022 17:28:01 GMT) Full text and rfc822 format available.

Message #25 received at 52975-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: "Artyom V. Poptsov" <poptsov.artyom <at> gmail.com>
Cc: 52975-done <at> debbugs.gnu.org
Subject: Re: bug#52975: [PATCH] gnu: guile-ssh: Update to 0.15.0
Date: Tue, 01 Mar 2022 18:27:25 +0100
Hi Artyom,

"Artyom V. Poptsov" <poptsov.artyom <at> gmail.com> skribis:

> I released Guile-SSH 0.15.1:
>   https://lists.gnu.org/archive/html/guile-user/2022-02/msg00169.html

Awesome.  I pushed an update earlier today, similar to what you had
proposed:

  https://git.savannah.gnu.org/cgit/guix.git/commit/?id=eabc6af9b8b14bd629544e54bc9c9afa2d0dcd85

I confirmed that it builds on the main architectures with:

  guix build guile-ssh -s x86_64-linux -s i686-linux \
    -s armhf-linux -s aarch64-linux

Thank you!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 30 Mar 2022 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 364 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.