Bug#923433: 0x51063B3: EncoderStrategy::Flush() (encoderstrategy.h:156)

2019-05-28 Thread Mathieu Malaterre
On Mon, May 20, 2019 at 4:50 PM Mathieu Malaterre  wrote:
>
> Gert,
>
> On Mon, May 20, 2019 at 3:31 PM Andreas Tille  wrote:
> >
> > Hint, hint, hint: Feel free to do an NMU / team upload of RC buggy
> > package.
>
> What's your opinion on this ? Revert to charls 1.x as suggested or
> investigated actual regression ?

debdiff attached. I've uploaded to delayed/10. Let me know of any issue.

Thanks


charls923433.debdiff
Description: Binary data


Bug#923433: 0x51063B3: EncoderStrategy::Flush() (encoderstrategy.h:156)

2019-05-20 Thread Mathieu Malaterre
Gert,

On Mon, May 20, 2019 at 3:31 PM Andreas Tille  wrote:
>
> Hint, hint, hint: Feel free to do an NMU / team upload of RC buggy
> package.

What's your opinion on this ? Revert to charls 1.x as suggested or
investigated actual regression ?



Bug#923433: 0x51063B3: EncoderStrategy::Flush() (encoderstrategy.h:156)

2019-05-20 Thread Andreas Tille
Hint, hint, hint: Feel free to do an NMU / team upload of RC buggy
package.  That's really welcome and will speed up the release.
Thanks a lot, Andreas.

On Mon, May 20, 2019 at 02:38:23PM +0200, Mathieu Malaterre wrote:
> Control: severity -1 grave
> Justification: Debian patches are introducing regression compared to upstream
> 
> Steps:
> 
> $ cd /tmp/
> $ wget 
> ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk364/bin/dcmtk-3.6.4-linux-x86_64-static.tar.bz2
> $ tar xf dcmtk-3.6.4-linux-x86_64-static.tar.bz2
> $ cd dcmtk-3.6.4-linux-x86_64-static/bin/
> $ curl 
> https://raw.githubusercontent.com/neurolabusc/dcm_qa/master/In/Orientation/ax/axasc35/MR.1.3.12.2.1107.5.2.32.35131.2014031012493950715786673
> > foo.dcm
> $ chmod +x dcmdjpls dcmcjpls
> $ ./dcmcjpls foo.dcm jpegls.dcm
> $ ./dcmdjpls jpegls.dcm raw.dcm
> $ gdcminfo --md5sum foo.dcm | grep md5
> md5sum: 8680e6fdccd8635581a3d21d131e95dd
> $ gdcminfo --md5sum raw.dcm | grep md5
> md5sum: 8680e6fdccd8635581a3d21d131e95dd
> 
> Please remove Debian/CharLS patches and use the convenient charls
> copy. The Debian policy does not make it a strong requirement anyway.
> 
> ___
> Debian-med-packaging mailing list
> debian-med-packag...@alioth-lists.debian.net
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-med-packaging

-- 
http://fam-tille.de



Bug#923433: 0x51063B3: EncoderStrategy::Flush() (encoderstrategy.h:156)

2019-05-20 Thread Mathieu Malaterre
Control: severity -1 grave
Justification: Debian patches are introducing regression compared to upstream

Steps:

$ cd /tmp/
$ wget 
ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk364/bin/dcmtk-3.6.4-linux-x86_64-static.tar.bz2
$ tar xf dcmtk-3.6.4-linux-x86_64-static.tar.bz2
$ cd dcmtk-3.6.4-linux-x86_64-static/bin/
$ curl 
https://raw.githubusercontent.com/neurolabusc/dcm_qa/master/In/Orientation/ax/axasc35/MR.1.3.12.2.1107.5.2.32.35131.2014031012493950715786673
> foo.dcm
$ chmod +x dcmdjpls dcmcjpls
$ ./dcmcjpls foo.dcm jpegls.dcm
$ ./dcmdjpls jpegls.dcm raw.dcm
$ gdcminfo --md5sum foo.dcm | grep md5
md5sum: 8680e6fdccd8635581a3d21d131e95dd
$ gdcminfo --md5sum raw.dcm | grep md5
md5sum: 8680e6fdccd8635581a3d21d131e95dd

Please remove Debian/CharLS patches and use the convenient charls
copy. The Debian policy does not make it a strong requirement anyway.



Bug#923433: 0x51063B3: EncoderStrategy::Flush() (encoderstrategy.h:156)

2019-03-08 Thread Mathieu Malaterre
Control: severity -1 important
Control: tags -1 patch

Turns out that every single DICOM instance that I tried seems to
produce the exact same SEGFAULT.

Running in valgrind show something like this for me (*).

I would suggest the following trivial patch to have a stable
DCMTK+JPEGLS encoder in buster:

$ cat debian/patches/series
01_dcmtk_3.6.0-1.patch
#02_system_charls.patch
03_datadic_install.patch
04_Fixed-OFoptional-by-introducing-OFalign.patch
05_performance.patch
07_dont_export_all_executables.patch
08_remove_system_processor.patch
#09_charls-2.0.patch

I suspect there is little value in using CharLS 2.0 for DCMTK until
upstream decide to make the move.

Thanks for consideration,

(*)
==3030== Invalid write of size 1
==3030==at 0x51063B3: EncoderStrategy::Flush() (encoderstrategy.h:156)
==3030==by 0x5106554: EncoderStrategy::AppendToBitStream(int, int)
(encoderstrategy.h:87)
==3030==by 0x5116F95: EncodeMappedValue (scan.h:347)
==3030==by 0x5116F95: DoRegular (scan.h:271)
==3030==by 0x5116F95: JlsCodec, EncoderStrategy>::DoLine(unsigned short*) (scan.h:660)
==3030==by 0x5117169: JlsCodec, EncoderStrategy>::DoScan() (scan.h:739)
==3030==by 0x5117502: JlsCodec, EncoderStrategy>::EncodeScan(std::unique_ptr >, ByteStreamInfo&, void*) (scan.h:820)
==3030==by 0x5127BBD:
JpegImageDataSegment::Serialize(JpegStreamWriter&)
(jpegstreamreader.cpp:81)
==3030==by 0x5128C90: JpegStreamWriter::Write(ByteStreamInfo
const&) (jpegstreamwriter.cpp:65)
==3030==by 0x5100C29: JpegLsEncodeStream(ByteStreamInfo, unsigned
long&, ByteStreamInfo, JlsParameters const&, char*)
(interface.cpp:136)
==3030==by 0x5100D65: JpegLsEncode (interface.cpp:218)
==3030==by 0x4875A20: DJLSEncoderBase::compressRawFrame(unsigned
char const*, unsigned short, unsigned short, unsigned short, unsigned
short, unsigned sho
rt, OFString const&, DcmPixelSequence*, OFList&,
unsigned long&, DJLSCodecParameter const*) const (djcodece.cc:676)
==3030==by 0x34B60D1E920A2A2: ???
==3030==by 0x148147302459A4FF: ???
==3030==  Address 0x1fff001000 is not stack'd, malloc'd or (recently) free'd
==3030==
==3030==
==3030== Process terminating with default action of signal 11 (SIGSEGV)
==3030==  Access not within mapped region at address 0x1FFF001000
==3030==at 0x51063B3: EncoderStrategy::Flush() (encoderstrategy.h:156)
==3030==by 0x5106554: EncoderStrategy::AppendToBitStream(int, int)
(encoderstrategy.h:87)
==3030==by 0x5116F95: EncodeMappedValue (scan.h:347)
==3030==by 0x5116F95: DoRegular (scan.h:271)
==3030==by 0x5116F95: JlsCodec, EncoderStrategy>::DoLine(unsigned short*) (scan.h:660)
==3030==by 0x5117169: JlsCodec, EncoderStrategy>::DoScan() (scan.h:739)
==3030==by 0x5117502: JlsCodec, EncoderStrategy>::EncodeScan(std::unique_ptr >, ByteStreamInfo&, void*) (scan.h:820)