Bug 331289

Summary: Buggy reading of dirfile's BITFIELDS channels coming from gzipped raw channels
Product: [Applications] kst Reporter: Joy <didier.joy>
Component: datasourcesAssignee: kst
Status: CLOSED UPSTREAM    
Severity: major CC: netterfield
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: format file of the dirfile
raw flag channel, gzipped with pygetdata

Description Joy 2014-02-18 23:16:43 UTC
I write a compressed dirfile using the gzip compression of getdata.
This dirfile has an int8 raw channel, 'flag_raw',  and from this raw channel I make a 1 bit long derived bitfield channel called 'flag0'
KST the reads the raw channel 'flag_raw' ok, but reads the 'flag0' wrong. I've seen it either show no datapoints, or show all zeros.


Reproducible: Always




The gzipped compressed data was written using pygetdata. I checked, and pygetdata can read the gzipped bitfields properly.
Comment 1 Joy 2014-02-19 05:38:10 UTC
Created attachment 85226 [details]
format file of the dirfile
Comment 2 Joy 2014-02-19 05:38:52 UTC
Created attachment 85227 [details]
raw flag channel, gzipped with pygetdata
Comment 3 Joy 2014-02-19 05:44:29 UTC
It seems I was a little fast in the characterization of the bug:
In the attached dirfile, raw_flag is an INT8 raw channel incrementing from 0 to 3, then back to 0. flag0 is a bitfield from raw_flag. The data was written with GZIP encoding using pygetdata.

READING WITH KST:
When reading this dirfile in KST, flag0 i read properly, but raw_flag reads zeros.

READING WITH PYGETDATA:
When reading this dirfile in pygetdata, raw_flag is read properly, but flag0 reads random data.

If I ungzip the data first, and delete the GZIP encoding keyword in the format file, both kst and pygetdata read the data properly.


> I write a compressed dirfile using the gzip compression of getdata.
> This dirfile has an int8 raw channel, 'flag_raw',  and from this raw channel
> I make a 1 bit long derived bitfield channel called 'flag0'
> KST the reads the raw channel 'flag_raw' ok, but reads the 'flag0' wrong.
> I've seen it either show no datapoints, or show all zeros.
> 
> 
> Reproducible: Always
> 
> 
> 
> 
> The gzipped compressed data was written using pygetdata. I checked, and
> pygetdata can read the gzipped bitfields properly.