Package Details: nbdkit 1.42.2-1

Git Clone URL: https://aur.archlinux.org/nbdkit.git (read-only, click to copy)
Package Base: nbdkit
Description: NBD server toolkit
Upstream URL: https://gitlab.com/nbdkit/nbdkit/
Licenses: BSD-3-Clause
Submitter: t-8ch
Maintainer: t-8ch (rwmjones)
Last Packager: t-8ch
Votes: 5
Popularity: 0.000037
First Submitted: 2019-02-22 14:36 (UTC)
Last Updated: 2025-04-02 10:49 (UTC)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 10 11 .. 13 Next › Last »

rwmjones commented on 2023-10-14 12:47 (UTC)

This is the failing test: https://gitlab.com/nbdkit/nbdkit/-/blob/77c9bad77a663726d424972e1dc73d4f06b005bb/server/test-public.c#L142 testing this function: https://gitlab.com/nbdkit/nbdkit/-/blob/77c9bad77a663726d424972e1dc73d4f06b005bb/server/public.c#L360

I'm not immediately sure why it would fail. Is this not glibc or an otherwise unusual libc configuration? How about the C compiler, is it not gcc? Is it a 64 bit machine?

dreieck commented on 2023-10-14 12:40 (UTC) (edited on 2023-10-14 12:41 (UTC) by dreieck)

check() fails for me, too:

[...]
make  check-TESTS
make[3]: Entering directory '/tmp/makepkg/build/nbdkit/src/nbdkit-1.36.0/server'
make[4]: Entering directory '/tmp/makepkg/build/nbdkit/src/nbdkit-1.36.0/server'
FAIL: test-public
============================================================================
Testsuite summary for nbdkit 1.36.0
============================================================================
# TOTAL: 1
# PASS:  0
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0
============================================================================
See server/test-suite.log
============================================================================

server/test-suite.log:

==========================================
   nbdkit 1.36.0: server/test-suite.log
==========================================

# TOTAL: 1
# PASS:  0
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: test-public
=================

Wrong return value for inf, got 0, expected -1
Wrong result for inf, got inf, expected 0
Wrong return value for nan, got 0, expected -1
Wrong return value for nan/inf, got 0, expected -1
Wrong return value for inf/inf, got 0, expected -1
Wrong return value for nan/nan, got 0, expected -1
Wrong return value for -0, got 0, expected -1
Wrong return value for 1e200/1e-200, got 0, expected -1
Wrong result for 1e200/1e-200, got inf, expected 0
FAIL test-public (exit status: 1)

/bin/sh is a symlink to bash.

Regards!

rwmjones commented on 2023-10-10 08:08 (UTC)

Can you see if this fixes it? https://gitlab.com/nbdkit/nbdkit/-/commit/99712c09835ae430912aed4848579fdfab01a576

rvalles commented on 2023-10-09 10:53 (UTC)

Great work.

rwmjones commented on 2023-10-09 07:46 (UTC)

Upstream - https://listman.redhat.com/archives/libguestfs/2023-October/032767.html

rwmjones commented on 2023-10-09 07:32 (UTC)

It's actually that we use system(3) to run the external scripts which runs /bin/sh, so bashisms shouldn't be used in those parameters (logscript and --run, in the case of this test). It is an upstream bug so I'll see if I can fix this ...

rvalles commented on 2023-10-09 06:47 (UTC)

Update: Based on the error log, I linked /bin/sh to /bin/bash (back from dash), and the test passed.

Thus this is an upstream issue; their scripts are calling sh when they should be calling bash.

rvalles commented on 2023-10-09 06:27 (UTC) (edited on 2023-10-09 06:31 (UTC) by rvalles)

FAIL: test-log-script-info.sh

(...)

============================================================================
Testsuite summary for nbdkit 1.36.0
============================================================================
# TOTAL: 324
# PASS:  283
# SKIP:  40
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

(...)

+ requires_run
+ is_windows
++ nbdkit --dump-config
++ grep '^host_os'
++ cut -d= -f2
+ host_os=linux-gnu
+ [[ linux-gnu =~ mingw|msys ]]
+ requires_nbdinfo
+ requires nbdinfo --version
+ requires_nbdsh_uri
+ requires nbdsh -c 'exit(not h.supports_uri())'
+ requires_filter log
+ requires nbdkit --filter=log null --version
+ nbdinfo --help
+ grep -- --map
    nbdinfo --map [--totals] [--json] NBD-URI | [ CMD ARGS ... ]
    nbdinfo --map nbd://example.com
    nbdinfo --map -- [ qemu-nbd -r -f qcow2 file.qcow2 ]
+ log=log-script-info.log
+ cleanup_fn rm -f log-script-info.log
+ local _hook=_cleanup_hook0
+ declare -ag _cleanup_hook0
+ eval '_cleanup_hook0=("$@")'
++ _cleanup_hook0=("$@")
+ rm -f log-script-info.log
+ nbdkit --filter=log data '@32768 1' size=64K 'logscript=
           if [ "$act" = "Extents" -a "$type" = "LEAVE" ]; then
               echo $act $type >>log-script-info.log
               # Print the extents, one per line.
               len=${#extents[@]}
               j=1
               for i in `seq 0 3 $((len-1))`; do
                   echo $j: ${extents[$i]} ${extents[$i+1]} ${extents[$i+2]} >>log-script-info.log
                   ((j++))
               done
           fi
       ' --run 'nbdinfo --map "$uri" >/dev/null'
libnbd: debug: nbd1: nbd_create: opening handle
libnbd: debug: nbd1: nbd_set_uri_allow_local_file: enter: allow=true
libnbd: debug: nbd1: nbd_set_uri_allow_local_file: leave: ret=0
libnbd: debug: nbd1: nbd_set_opt_mode: enter: enable=true
libnbd: debug: nbd1: nbd_set_opt_mode: leave: ret=0
libnbd: debug: nbd1: nbd_add_meta_context: enter: name="base:allocation"
libnbd: debug: nbd1: nbd_add_meta_context: leave: ret=0
libnbd: debug: nbd1: nbd_connect_uri: enter: uri="nbd+unix://?socket=/tmp/nbdkitOPchun/socket"
libnbd: debug: nbd1: nbd_connect_uri: poll start: events=4
libnbd: debug: nbd1: nbd_connect_uri: poll end: r=1 revents=4
libnbd: debug: nbd1: nbd_connect_uri: poll start: events=1
libnbd: debug: nbd1: nbd_connect_uri: poll end: r=1 revents=1
libnbd: debug: nbd1: nbd_connect_uri: poll start: events=1
libnbd: debug: nbd1: nbd_connect_uri: poll end: r=1 revents=1
libnbd: debug: nbd1: nbd_connect_uri: extended headers are not supported by this server
libnbd: debug: nbd1: nbd_connect_uri: poll start: events=1
libnbd: debug: nbd1: nbd_connect_uri: poll end: r=1 revents=1
libnbd: debug: nbd1: nbd_connect_uri: negotiated structured replies on this connection
libnbd: debug: nbd1: nbd_connect_uri: leave: ret=0
libnbd: debug: nbd1: nbd_aio_is_negotiating: enter:
libnbd: debug: nbd1: nbd_aio_is_negotiating: leave: ret=1
libnbd: debug: nbd1: nbd_opt_info: enter:
libnbd: debug: nbd1: nbd_opt_info: poll start: events=1
libnbd: debug: nbd1: nbd_opt_info: poll end: r=1 revents=1
libnbd: debug: nbd1: nbd_opt_info: negotiated base:allocation with context ID 1
libnbd: debug: nbd1: nbd_opt_info: poll start: events=1
libnbd: debug: nbd1: nbd_opt_info: poll end: r=1 revents=1
libnbd: debug: nbd1: nbd_opt_info: exportsize: 65536 eflags: 0xded
libnbd: debug: nbd1: nbd_opt_info: leave: ret=0
libnbd: debug: nbd1: nbd_aio_is_negotiating: enter:
libnbd: debug: nbd1: nbd_aio_is_negotiating: leave: ret=1
libnbd: debug: nbd1: nbd_opt_go: enter:
libnbd: debug: nbd1: nbd_opt_go: poll start: events=1
libnbd: debug: nbd1: nbd_opt_go: poll end: r=1 revents=1
libnbd: debug: nbd1: nbd_opt_go: negotiated base:allocation with context ID 1
libnbd: debug: nbd1: nbd_opt_go: poll start: events=1
libnbd: debug: nbd1: nbd_opt_go: poll end: r=1 revents=1
libnbd: debug: nbd1: nbd_opt_go: exportsize: 65536 eflags: 0xded
libnbd: debug: nbd1: nbd_opt_go: leave: ret=0
libnbd: debug: nbd1: nbd_can_meta_context: enter: metacontext="base:allocation"
libnbd: debug: nbd1: nbd_can_meta_context: leave: ret=1
libnbd: debug: nbd1: nbd_get_block_size: enter: size_type=0
libnbd: debug: nbd1: nbd_get_block_size: leave: ret=0
libnbd: debug: nbd1: nbd_get_size: enter:
libnbd: debug: nbd1: nbd_get_size: leave: ret=65536
libnbd: debug: nbd1: nbd_get_extended_headers_negotiated: enter:
libnbd: debug: nbd1: nbd_get_extended_headers_negotiated: leave: ret=0
libnbd: debug: nbd1: nbd_block_status_64: enter: count=65536 offset=0 extent64=<fun> flags=0x0
libnbd: debug: nbd1: nbd_block_status_64: poll start: events=1
sh: 5: Syntax error: "(" unexpected
nbdkit: data.0: error: logscript: command failed with exit code 2
libnbd: debug: nbd1: nbd_block_status_64: poll end: r=1 revents=1
libnbd: debug: nbd1: nbd_block_status_64: leave: ret=0
libnbd: debug: nbd1: nbd_shutdown: enter: flags=0x0
libnbd: debug: nbd1: nbd_shutdown: poll start: events=1
libnbd: debug: nbd1: nbd_shutdown: poll end: r=1 revents=11
libnbd: debug: nbd1: nbd_shutdown: leave: ret=0
libnbd: debug: nbd1: nbd_close: closing handle
+ cat log-script-info.log
cat: log-script-info.log: No such file or directory
++ _run_cleanup_hooks
++ local _status=1 _i
++ set +e
++ trap '' INT QUIT TERM EXIT ERR
++ echo ./test-log-script-info.sh: run cleanup hooks: exit code 1
./test-log-script-info.sh: run cleanup hooks: exit code 1
++ (( _i = 0 ))
++ (( _i < 1 ))
++ eval '"${_cleanup_hook0[@]}"'
+++ rm -f log-script-info.log
++ (( ++_i  ))
++ (( _i < 1 ))
++ exit 1
FAIL test-log-script-info.sh (exit status: 1)

rwmjones commented on 2023-05-19 20:03 (UTC)

I suspect unfortunately this may be an OCaml 5 issue. The whole locking architecture is different because of multicore. We've not even started looking at OCaml 5 yet.

t-8ch commented on 2023-05-19 19:52 (UTC) (edited on 2023-05-19 20:03 (UTC) by t-8ch)

I can only reproduce the test-ocaml-errorcodes issue. It fails with "Fatal error: Fatal error during lock: Resource deadlock avoided" which happens in the call to LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE() in open_wrapper() in plugins/ocaml/plugin.c.

It also happens on older versions of nbdkit. Maybe ocaml 5.0.0 is the trigger.