Bug#927027: dcfldd: split=1000 fails on i386, armhf
Hi again Steve and Berhard, dcfldd v1.5 was released today[1]. [1] https://github.com/resurrecting-open-source-projects/dcfldd/releases/tag/v1.5 I confirm that the new version is working fine now on amd64, i386 and armhf (I did some tests over these architectures) with split=1000 in command line. However, I got segmentation fault when running it with autopkgtest in armhf (amd64 and i386 are ok). I will remove the split option and close this bug (via upload). Tomorrow, I will make tests in several architectures and file a bug against autopkgtest package. Thank you very much for you contribution. Cheers, Eriberto
Bug#927027: dcfldd: split=1000 fails on i386, armhf
Control: forwarded 927027 https://github.com/resurrecting-open-source-projects/dcfldd Em dom, 14 de abr de 2019 às 14:57, Bernhard Übelacker escreveu: > Dear Maintainer, > I tried to have a look at this crash and I think it is related to > the large file support, which is defined in dcfldd.h, line 27 and 28. > > Unfortunately this file gets not included first in split.c and > therefore off_t gets defined without large file support. > Therefore the size of struct split_t in split.c and output.c > is different and therefore the fmt is a null pointer. Hi Steve and Berhard, Sorry for my long delay. I implemented Berhard's changes in new upstream repo (created by me)[1]. I will release the 1.5 version soon. Note that I am not a C programmer. Feel free to join to the project. dcfldd is a very nice/useful program and it needs to be resurrected. Regards, Eriberto [1] https://github.com/resurrecting-open-source-projects/dcfldd
Bug#927027: dcfldd: split=1000 fails on i386, armhf
Control: tags 927027 + patch Dear Maintainer, I tried to have a look at this crash and I think it is related to the large file support, which is defined in dcfldd.h, line 27 and 28. Unfortunately this file gets not included first in split.c and therefore off_t gets defined without large file support. Therefore the size of struct split_t in split.c and output.c is different and therefore the fmt is a null pointer. The include in split.c got introduced in 30_fix-implicit-declarations.patch and might be fixed there. There is another case where dcfldd.h is not the first include in file verify.c, but cannot say if that would cause other problems. Attached patch demonstrates both changes and a package built with it could run the test successful. I have just tested i386, not armhf. Kind regards, Bernhard (gdb) bt #0 __strlen_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S:50 #1 0x0041da62 in getext (num=0, fmt=0x0) at split.c:52 #2 open_split (split=0x2262330) at split.c:104 #3 split_write (split=0x2262330, buf=0x226d000 "Autopkgtest - Defining tests for Debian packages\n\nThis document describes how autopkgtest interprets and executes tests found in Debian source packages.\nOverview\n\nThe source package provides a test me"..., len=) at split.c:128 #4 0x0041d96d in outputlist_write (buf=0x226d000 "Autopkgtest - Defining tests for Debian packages\n\nThis document describes how autopkgtest interprets and executes tests found in Debian source packages.\nOverview\n\nThe source package provides a test me"..., len=18171) at output.c:155 #5 0x0041b6a7 in dd_copy () at copy.c:366 #6 0x00414d29 in main (argc=, argv=) at dcfldd.c:768 # Buster i386 qemu VM 2019-04-14 apt update apt dist-upgrade apt install dpkg-dev devscripts mc systemd-coredump autopkgtest dcfldd dcfldd-dbgsym gdb lz4 apt build-dep dcfldd mkdir /home/benutzer/source/dcfldd/orig -p cd/home/benutzer/source/dcfldd/orig apt source dcfldd cd cd /home/benutzer/source/dcfldd cp -a orig try1 cd try1/dcfldd-1.3.4.1 dpkg-buildpackage autopkgtest -- null ### benutzer@debian:~/source/dcfldd/try1/dcfldd-1.3.4.1$ autopkgtest -- null autopkgtest [18:54:30]: version 5.10 autopkgtest [18:54:30]: host debian; command line: /usr/bin/autopkgtest -- null autopkgtest [18:54:30]: testbed dpkg architecture: i386 autopkgtest [18:54:30]: testbed running kernel: Linux 4.19.0-4-686-pae #1 SMP Debian 4.19.28-2 (2019-03-15) autopkgtest [18:54:30]: built-tree . autopkgtest [18:54:30]: testing package dcfldd version 1.3.4.1-13 autopkgtest [18:54:30]: test command1: preparing testbed Starting pkgProblemResolver with broken count: 0 Starting 2 pkgProblemResolver with broken count: 0 Done autopkgtest: WARNING: virtualisation system does not offer root or writable testbed; unpacking dependencies to temporary dir, which will only work for some packages Holen:1 http://192.168.178.25:/debian-10-buster-deb.debian.org buster/main i386 dcfldd i386 1.3.4.1-13 [42,5 kB] Es wurden 42,5 kB in 0 s geholt (2.439 kB/s). autopkgtest [18:54:31]: test command1: dcfldd if=debian/tests/test.txt split=1000 of=$AUTOPKGTEST_TMP/test2.txt hash=md5,sha1,sha256,sha384,sha512; ls $AUTOPKGTEST_TMP -lh autopkgtest [18:54:31]: test command1: [--- bash: line 1: 19173 Segmentation fault (core dumped) dcfldd if=debian/tests/test.txt split=1000 of=$AUTOPKGTEST_TMP/test2.txt hash=md5,sha1,sha256,sha384,sha512 autopkgtest [18:54:32]: test command1: ---] autopkgtest [18:54:32]: test command1: - - - - - - - - - - results - - - - - - - - - - command1 FAIL non-zero exit status 139 autopkgtest [18:54:32]: summary command1 FAIL non-zero exit status 139 ### dmesg: [ 744.195515] dcfldd[19173]: segfault at 0 ip b7e38686 sp bff82094 error 4 in libc-2.28.so[b7dca000+14e000] [ 744.195524] Code: 89 fa 5b 5e 0f b6 fa 29 f8 5f 5d c3 66 90 66 90 66 90 66 90 56 57 8b 7c 24 0c 31 c0 89 f9 83 e1 3f 66 0f ef c0 83 f9 30 77 17 0f 6f 0f 66 0f 74 c1 66 0f d7 d0 85 d2 75 73 89 f8 83 e0 f0 eb root@debian:~# coredumpctl list TIMEPID UID GID SIG COREFILE EXE Sun 2019-04-14 18:54:31 CEST 19173 1000 1000 11 present /tmp/autopkgtest.eHCLuf/deps/usr/bin/dcfldd root@debian:~# coredumpctl gdb 19173 PID: 19173 (dcfldd) UID: 1000 (benutzer) GID: 1000 (benutzer) Signal: 11 (SEGV) Timestamp: Sun 2019-04-14 18:54:31 CEST (1min 5s ago) Command Line: dcfldd if debian/tests/test.txt split 1000 of /tmp/autopkgtest.eHCLuf/autopkgtest_tmp/test2.txt hash md5 sha1 sha256 sha384 sha512 Executable: /tmp/autopkgtest.eHCLuf/deps/usr/bin/dcfldd Control Group: /user.slice/user-1000.slice/session-3.scope Unit: session-3.scope Slice: user-1000.slice Session: 3 Owner UID: 1000 (benutzer) Boot ID: 8b4e680d36e04a738bc8e8a33f18f3c0 Machi
Bug#927027: dcfldd: split=1000 fails on i386, armhf
Package: dcfldd Version: 1.3.4.1-12 Severity: important User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu disco Dear Joao Eriberto, In 1.3.4.1-13, you have introduced an improved autopkgtest that runs: dcfldd if=debian/tests/test.txt split=1000 of=$AUTOPKGTEST_TMP/test2.txt hash=md5,sha1,sha256,sha384,sha512 in order to more completely test the dcfldd functionality. This test passes on amd64 in Debian and Ubuntu; however, Ubuntu runs autopkgtests for all architectures, not just for amd64, and in Ubuntu this new test is failing on i386 and armhf. On i386: autopkgtest [13:12:59]: test command1: [--- bash: line 1: 1030 Segmentation fault (core dumped) dcfldd if=debian/tests/test.txt split=1000 of=$AUTOPKGTEST_TMP/test2.txt hash=md5,sha1,sha256,sha384,sha512 autopkgtest [13:13:00]: test command1: ---] command1 FAIL non-zero exit status 139 (http://autopkgtest.ubuntu.com/packages/d/dcfldd/disco/i386) On armhf: autopkgtest [12:50:19]: test command1: [--- bash: line 1: 637 Floating point exception(core dumped) dcfldd if=debian/tests/test.txt split=1000 of=$AUTOPKGTEST_TMP/test2.txt hash=md5,sha1,sha256,sha384,sha512 autopkgtest [12:50:21]: test command1: ---] autopkgtest [12:50:24]: test command1: - - - - - - - - - - results - - - - - - - - - - command1 FAIL non-zero exit status 136 (http://autopkgtest.ubuntu.com/packages/d/dcfldd/disco/armhf) I've checked, and verified that this same test also fails with the prior version of dcfldd, in the same way on each architecture. On both archs, it's the 'split=1000' argument that causes the failure. Since Debian doesn't run autopkgtests on architectures other than amd64, I would suggest that you also run this test at package build time so that you can detect such architecture-dependent breakage before the binary package is shipped. Cheers, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature