Package: release.debian.org
Severity: normal
Tags: bullseye
User: release.debian@packages.debian.org
Usertags: pu
X-Debbugs-Cc: nil...@debian.org
[ Reason ]
The package segfauls to !amd64 and !i386 architectures. The version in
bullseye does not have autopkgtests, when we added those and uploaded
_after_ the bullseye release, tests were segfaulting on arm64, ppc64el
and armhf. Note that there has been no new upstream release, just test
addition with a few cosmetics.
Unfortunantely, the failing logs of the 0.3.4-4 version have disappeared
from here[1]
But, trying on a arm64 porter box confirms the experience.
% ./segemehl -x index.idx -d seq1.fa
[SEGEMEHL] Mon Sep 6 18:29:55 2021: reading database sequences.
zsh: segmentation fault ./segemehl -x index.idx -d seq1.fa
% ./segemehl -i index.idx -d seq1.fa -q myseq.fa > mymap.sam
[SEGEMEHL] Mon Sep 6 18:44:08 2021: reading queries in 'myseq.fa'.
...this keeps running forever
This has been fixed in unstable with the relevant patch, and upload[2]
0.3.4-5 and it migrated to testing after everything passes
[1]: https://ci.debian.net/data/autopkgtest/unstable/arm64/s/segemehl/
[2]:
https://tracker.debian.org/news/1251311/accepted-segemehl-034-5-source-into-unstable/
Since I noticed and fixed it before any bug was filed, there does not
exist a corresponding RC bug in the database. Let me know if I should
file one and process BTS commands on that.
[ Impact ]
Users will find a broken segfaulting package on !amd64 and !i386
machines
[ Tests ]
Autopkgtests have been added. I've manually run them on porter boxes,
and it looks good (as it should)
The revision in unstable also has tests passing
https://ci.debian.net/data/autopkgtest/unstable/arm64/s/segemehl/14839955/log.gz
[ Risks ]
Being a leaf package with a not-very-high popcon, risk is pretty low
[ Checklist ]
[x] *all* changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in stable
[x] the issue is verified as fixed in unstable
diff -Nru segemehl-0.3.4/debian/changelog segemehl-0.3.4/debian/changelog
--- segemehl-0.3.4/debian/changelog 2021-02-18 15:14:26.0 +0530
+++ segemehl-0.3.4/debian/changelog 2021-09-06 23:46:30.0 +0530
@@ -1,3 +1,11 @@
+segemehl (0.3.4-3+deb11u1) bullseye; urgency=medium
+
+ * d/p/arm64.patch: Fix autopkgtest segaults on !amd64 and !i386
++ Change the signed-ness for needed chars to fix segfault
+ * Add autopkgtests
+
+ -- Nilesh Patra Mon, 06 Sep 2021 23:46:30 +0530
+
segemehl (0.3.4-3) unstable; urgency=medium
* Team Upload.
diff -Nru segemehl-0.3.4/debian/examples segemehl-0.3.4/debian/examples
--- segemehl-0.3.4/debian/examples 1970-01-01 05:30:00.0 +0530
+++ segemehl-0.3.4/debian/examples 2021-09-06 23:45:58.0 +0530
@@ -0,0 +1 @@
+debian/tests/data/*
\ No newline at end of file
diff -Nru segemehl-0.3.4/debian/patches/arm64.patch
segemehl-0.3.4/debian/patches/arm64.patch
--- segemehl-0.3.4/debian/patches/arm64.patch 1970-01-01 05:30:00.0
+0530
+++ segemehl-0.3.4/debian/patches/arm64.patch 2021-09-06 23:43:50.0
+0530
@@ -0,0 +1,75 @@
+Description: Change the signed-ness for several chars to fix segfault
+Author: Nilesh Patra
+Last-Update: 2021-08-24
+--- a/libs/biofiles.c
b/libs/biofiles.c
+@@ -1916,7 +1916,7 @@
+ Uint max, Uint *minlen, Uint *maxlen, unsigned char *minq, unsigned char
*maxq)
+ {
+
+- char ch;
++ signed char ch;
+ char idchar=0;
+ int ret=0;
+ off_t curseqoffset, lastindexoffset=0;
+@@ -2515,7 +2515,7 @@
+ {
+
+ FILE *fp;
+- char ch;
++ signed char ch;
+ char *buffer;
+ char *descrbuffer = NULL;
+ char *seqbuffer = NULL;
+--- a/libs/fileio.c
b/libs/fileio.c
+@@ -498,7 +498,7 @@
+ void
+ bl_freplacestr(char *filename, char *str, Uint len, char stop){
+ int i = 0;
+- char ch;
++ signed char ch;
+ FILE *fp;
+
+ fp = fopen(filename, "rb+");
+@@ -523,7 +523,8 @@
+
+ int
+ bl_fgets(void *space, FILE *fp, char **str) {
+- char ch, *buffer;
++ signed char ch;
++ char *buffer;
+ size_t buffersize = MAXBUFFERSIZE;
+ size_t len = 0;
+
+@@ -549,7 +550,7 @@
+ char*
+ readfile(void* space, char* filename, size_t* strlen) {
+
+- char ch;
++ signed char ch;
+ char *buffer;
+ FILE *fp;
+ size_t buffersize = MAXBUFFERSIZE;
+--- a/libs/merge.c
b/libs/merge.c
+@@ -596,7 +596,7 @@
+ if (!file->complete && !file->eof){
+
+ #ifndef FILEBUFFEREDMERGE
+-char ch;
++signed char ch;
+ Uint buffersize = 1024;
+ buffer = ALLOCMEMORY(NULL, NULL, char, buffersize);
+ len = 0;
+--- a/libs/samheader.c
b/libs/samheader.c
+@@ -460,7 +460,7 @@
+ {
+ FILE *fp;
+ off_t offset = 0;
+- char ch;
++ signed char ch;
+ char *buffer;
+ // char *descrbuffer = NULL;
+ // char *seqbuffer = NULL;
diff -Nru segemehl-0.3.4/debian/patches/series
segemehl-0.3.4/debian/patches/series
---