EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Problem with HDF5 plugin for areaDetector
From: Mark Rivers <[email protected]>
To: "Wilkins, Stuart" <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Wed, 4 Mar 2015 23:49:41 +0000
Hi Stuart,

I just tested with the master branch of ADCore.  I used 1024x1024 RGB1 data and saved a single HDF5 file with the Save button.

Here is the asynTrace output with all asynTrace bits set:

************************************************************************************************
2015/03/04 17:36:16.325 13SIM1:HDF1:EpicsTSSec_RBV devAsynInt32::getCallbackValue from ringBuffer value=794360176
2015/03/04 17:36:16.325 13SIM1:HDF1:EpicsTSNsec_RBV devAsynInt32::getCallbackValue from ringBuffer value=324902139
2015/03/04 17:36:17.894 FileHDF1 addr -1 queueRequest priority 0 not lockHolder
2015/03/04 17:36:17.895 asynManager::portThread port=FileHDF1 callback
2015/03/04 17:36:17.895 NDFileHDF5:writeInt32: function=24, value=1 old=0
2015/03/04 17:36:17.895 NDFileHDF5:writeInt32: calling base class function=24, value=1 old=0
2015/03/04 17:36:17.895 13SIM1:HDF1:WriteFile devAsynBusy::interruptCallback new value=1
2015/03/04 17:36:17.895 13SIM1:HDF1:WriteFile_RBV devAsynInt32::interruptCallbackInput new value=1
2015/03/04 17:36:17.895 13SIM1:HDF1:WriteFile_RBV devAsynInt32::getCallbackValue from ringBuffer value=1
2015/03/04 17:36:17.895 NDFileHDF5::openFile Filename: /home/epics/scratch/test_hdf5_014.h5
2015/03/04 17:36:17.896 NDFileHDF5::openFile attribute list copied. num pArray attributes = 15 local copy = 15
2015/03/04 17:36:17.896 NDFileHDF5::configureDims  NDArray:   {     3, 1024, 1024, }
2015/03/04 17:36:17.896 NDFileHDF5::configureDims dimension report: 
 framesize   1024,  1024,     3,
 chunkdims   1024,  1024,     3,
   maxdims   1024,  1024,     3,
      dims   1024,  1024,     3,
    offset      0,     0,     0,
   virtual      0,
2015/03/04 17:36:17.896 NDFileHDF5::createNewFile Setting istorek=1
2015/03/04 17:36:17.896 NDFileHDF5::createFileLayout Creating dataspace with given dimensions
2015/03/04 17:36:17.896 NDFileHDF5::createFileLayout Configuring chunking
2015/03/04 17:36:17.896 NDFileHDF5::createFileLayout Setting fillvalue
2015/03/04 17:36:17.897 NDFileHDF5::createFileLayout Empty layout file, use default layout
2015/03/04 17:36:17.897 NDFileHDF5::createXMLFileLayout Root tree: < Group: '' groups=1 dsets=0 attr=0>
                                  < Group: '/entry' groups=2 dsets=0 attr=1>
                                  < Group: '/entry/data' groups=0 dsets=0 attr=1>
                                  < Group: '/entry/instrument' groups=3 dsets=0 attr=1>
                                    < Group: '/entry/instrument/NDAttributes' groups=0 dsets=0 attr=1>
                                    < Group: '/entry/instrument/detector' groups=1 dsets=1 attr=1>
                                      < Group: '/entry/instrument/detector/NDAttributes' groups=0 dsets=1 attr=1>
                                    < Group: '/entry/instrument/performance' groups=0 dsets=1 attr=0>
2015/03/04 17:36:17.897 NDFileHDF5::writeH5attrStr name=NX_class value=NXentry
2015/03/04 17:36:17.898 NDFileHDF5::writeH5attrStr name=NX_class value=NXdata
2015/03/04 17:36:17.898 NDFileHDF5::writeH5attrStr name=NX_class value=NXinstrument
2015/03/04 17:36:17.898 NDFileHDF5::writeH5attrStr name=NX_class value=NXcollection
2015/03/04 17:36:17.898 NDFileHDF5::writeH5attrStr name=NX_class value=NXdetector
2015/03/04 17:36:17.898 NDFileHDF5::createDatasetDetector Setting cache size=3145728 slots=53
2015/03/04 17:36:17.898 NDFileHDF5::createDatasetDetector Creating first empty dataset called "data"
2015/03/04 17:36:17.898 NDFileHDF5::writeH5attrStr name=NX_class value=SDS
2015/03/04 17:36:17.898 NDFileHDF5::writeH5attrInt32 name=signal value=1
2015/03/04 17:36:17.898 NDFileHDF5::writeH5attrStr name=NX_class value=NXcollection
2015/03/04 17:36:17.898 NDFileHDF5::createXMLFileLayout Default dataset name: /entry/instrument/detector/data
2015/03/04 17:36:17.898 NDFileHDF5::createAttributeDataset Creating attribute datasets. extradims=0 attribute count=15
2015/03/04 17:36:17.899 NDFileHDF5::writeFile getting attribute list
2015/03/04 17:36:17.899 NDFileHDF5::writeFile copying attribute list
2015/03/04 17:36:17.899 NDFileHDF5::writeFile: set_extent dims={1024,1024,3}
2015/03/04 17:36:17.902 NDFileHDF5::writeFile wrote frame. dt=0.00281s (T=0.00641s)
2015/03/04 17:36:17.902 NDFileHDF5::closeAttributeDataset: closing attribute dataset 'ColorMode'
2015/03/04 17:36:17.902 NDFileHDF5::closeAttributeDataset: closing attribute dataset 'AcquireTime'
2015/03/04 17:36:17.902 NDFileHDF5::closeAttributeDataset: closing attribute dataset 'RingCurrent'
2015/03/04 17:36:17.903 NDFileHDF5::closeAttributeDataset: closing attribute dataset 'ID_Energy'
2015/03/04 17:36:17.903 NDFileHDF5::closeAttributeDataset: closing attribute dataset 'ImageCounter'
2015/03/04 17:36:17.903 NDFileHDF5::closeAttributeDataset: closing attribute dataset 'MaxSizeX'
2015/03/04 17:36:17.903 NDFileHDF5::closeAttributeDataset: closing attribute dataset 'MaxSizeY'
2015/03/04 17:36:17.903 NDFileHDF5::closeAttributeDataset: closing attribute dataset 'Pi'
2015/03/04 17:36:17.903 NDFileHDF5::closeAttributeDataset: closing attribute dataset 'E'
2015/03/04 17:36:17.903 NDFileHDF5::closeAttributeDataset: closing attribute dataset 'Ten'
2015/03/04 17:36:17.903 NDFileHDF5::closeFile closing HDF cparms 167772177
2015/03/04 17:36:17.903 NDFileHDF5::closeFile closing HDF datatype 50331961
2015/03/04 17:36:17.903 NDFileHDF5::closeFile closing groups
2015/03/04 17:36:17.906 NDFileHDF5::closeFile file closed! runtime=0.011 s overall acquisition performance=2219.57 Mbit/s
2015/03/04 17:36:17.906 13SIM1:HDF1:NumCaptured_RBV devAsynInt32::interruptCallbackInput new value=1
2015/03/04 17:36:17.907 13SIM1:HDF1:FileNumber devAsynInt32::interruptCallbackOutput new value=15
2015/03/04 17:36:17.907 13SIM1:HDF1:FileNumber_RBV devAsynInt32::interruptCallbackInput new value=15
2015/03/04 17:36:17.907 13SIM1:HDF1:FileNumber devAsynInt32::getCallbackValue from ringBuffer value=15
2015/03/04 17:36:17.907 13SIM1:HDF1:NumCaptured_RBV devAsynInt32::getCallbackValue from ringBuffer value=1
2015/03/04 17:36:17.907 13SIM1:HDF1:FileNumber_RBV devAsynInt32::getCallbackValue from ringBuffer value=15
2015/03/04 17:36:17.907 13SIM1:HDF1:FullFileName_RBV devAsynOctet::interruptCallbackInput ringSize=0, len=37, callback data:2015/03/04 17:36:17.907 13SIM1:HDF1:NumFramesChunks_RBV devAsynInt32::interruptCallbackInput new value=1024
2015/03/04 17:36:17.907 13SIM1:HDF1:NumRowChunks_RBV devAsynInt32::interruptCallbackInput new value=1024
2015/03/04 17:36:17.907 13SIM1:HDF1:NumColChunks_RBV devAsynInt32::interruptCallbackInput new value=3
2015/03/04 17:36:17.907 13SIM1:HDF1:IOSpeed devAsynFloat64::interruptCallbackInput new value=2219.566552
2015/03/04 17:36:17.907 13SIM1:HDF1:RunTime devAsynFloat64::interruptCallbackInput new value=0.010813
2015/03/04 17:36:17.907 13SIM1:HDF1:WriteFile devAsynBusy::interruptCallback new value=0
2015/03/04 17:36:17.907 13SIM1:HDF1:WriteFile devAsynBusy::interruptCallback 1 to 0 transition, posting monitors and calling recGblFwdLink
2015/03/04 17:36:17.907 13SIM1:HDF1:WriteFile_RBV devAsynInt32::interruptCallbackInput new value=0
2015/03/04 17:36:17.907 13SIM1:HDF1:FullFileName_RBV devAsynOctet::processCommon len=36,  data:2015/03/04 17:36:17.907 NDPluginFile:writeInt32: function=24, value=1
2015/03/04 17:36:17.907 13SIM1:HDF1:WriteFile devAsynBusy process value 1
2015/03/04 17:36:17.907 13SIM1:HDF1:NumFramesChunks_RBV devAsynInt32::getCallbackValue from ringBuffer value=1024
2015/03/04 17:36:17.907 13SIM1:HDF1:NumRowChunks_RBV devAsynInt32::getCallbackValue from ringBuffer value=1024
2015/03/04 17:36:17.908 13SIM1:HDF1:NumColChunks_RBV devAsynInt32::getCallbackValue from ringBuffer value=3
2015/03/04 17:36:17.908 13SIM1:HDF1:IOSpeed devAsynFloat64::getCallbackValue from ringBuffer value=2219.566552
2015/03/04 17:36:17.908 13SIM1:HDF1:RunTime devAsynFloat64::getCallbackValue from ringBuffer value=0.010813
2015/03/04 17:36:17.908 13SIM1:HDF1:WriteFile_RBV devAsynInt32::getCallbackValue from ringBuffer value=0
2015/03/04 17:36:18.325 13SIM1:HDF1:ArrayCounter_RBV devAsynInt32::interruptCallbackInput new value=0
2015/03/04 17:36:18.325 13SIM1:HDF1:UniqueId_RBV devAsynInt32::interruptCallbackInput new value=7
2015/03/04 17:36:18.325 13SIM1:HDF1:TimeStamp_RBV devAsynFloat64::interruptCallbackInput new value=794360178.318882
************************************************************************************************

These are the last few lines up to where your IOC crashed:

2015/03/04 17:16:23.569 NDFileHDF5::createDatasetDetector Creating first empty dataset called "data"
2015/03/04 17:16:23.570 NDFileHDF5::writeH5attrStr name=NX_class value=SDS
2015/03/04 17:16:23.570 NDFileHDF5::writeH5attrInt32 name=signal value=1
2015/03/04 17:16:23.570 NDFileHDF5::writeH5attrStr name=NX_class value=NXcollection
2015/03/04 17:16:23.570 NDFileHDF5::createXMLFileLayout Default dataset name: /entry/instrument/detector/data
2015/03/04 17:16:23.570 NDFileHDF5::createAttributeDataset Creating attribute datasets. extradims=0 attribute count=1
2015/03/04 17:16:23.570 NDFileHDF5::writeFile getting attribute list
2015/03/04 17:16:23.570 NDFileHDF5::writeFile copying attribute list
2015/03/04 17:16:23.570 NDFileHDF5::writeFile: set_extent dims={1024,1024,3}
HDF5-DIAG: Error detected in HDF5 (1.8.8) thread 139838595618560:
  #000: ../../../src/H5Dio.c line 245 in H5Dwrite(): file selection+offset not within extent
    major: Dataspace
    minor: Out of range
Segmentation fault


This is the output I get starting at the same point:

2015/03/04 17:36:17.898 NDFileHDF5::createDatasetDetector Creating first empty dataset called "data"
2015/03/04 17:36:17.898 NDFileHDF5::writeH5attrStr name=NX_class value=SDS
2015/03/04 17:36:17.898 NDFileHDF5::writeH5attrInt32 name=signal value=1
2015/03/04 17:36:17.898 NDFileHDF5::writeH5attrStr name=NX_class value=NXcollection
2015/03/04 17:36:17.898 NDFileHDF5::createXMLFileLayout Default dataset name: /entry/instrument/detector/data
2015/03/04 17:36:17.898 NDFileHDF5::createAttributeDataset Creating attribute datasets. extradims=0 attribute count=15
2015/03/04 17:36:17.899 NDFileHDF5::writeFile getting attribute list
2015/03/04 17:36:17.899 NDFileHDF5::writeFile copying attribute list
2015/03/04 17:36:17.899 NDFileHDF5::writeFile: set_extent dims={1024,1024,3}
2015/03/04 17:36:17.902 NDFileHDF5::writeFile wrote frame. dt=0.00281s (T=0.00641s)

So it is very similar up to where yours died.  I have 15 attributes and you only have 1, but that is because I am using a different attribute XML file.

I don't know what version of ACCore you are running, but we I don't know of any changes that would fix a problem like the one you are seeing.

On github there are 2 branches that might be of interest to you:

master: This is the branch I just tested above, but it does not yet have some more recent fixes to the HDF5 plugin

hdf5-bugfix  This branch has a few recent fixes, and is still being actively worked on.  It will be merged with master before ADCore 2-2 is released, hopefully in a week or two.


Cheers,
Mark


________________________________________
From: Wilkins, Stuart [[email protected]]
Sent: Wednesday, March 04, 2015 5:12 PM
To: Mark Rivers
Cc: [email protected]
Subject: Re: Problem with HDF5 plugin for areaDetector

Hi Mark,

Yes this is Linux. Debian 7.

Can try pulling off master of ADCore tonight. I have the defaults set and even wiped save/restore to set to defaults and it still segfaults.

If you get a specific tag or branch to work let me know, I can try this this end.

Best wishes,
Stuart


> On Mar 4, 2015, at 18:10, Mark Rivers <[email protected]> wrote:
>
> Hi Stuart,
>
> Is this on Linux?
>
> It looks like you are using HDF 1.8.8?  I have been using 1.8.7, but I think the people at Diamond have been using more recent versions.
>
> ADCore R2-1 was a major re-write of the HDF5 plugin to allow the HDF5 file layout to be configured via an XML file.  We have recently found some bugs in it, the most serious of which is that it is not possible to change the NDArray source after iocInit.  R2-2 will be out soon, and will fix that bug and a number of others that we are actively working on.
>
> That being said, I think others have been using 2.0 without the problems you are describing.  Are you using all of the default settings in terms of compression, chunking, etc?
>
> I'll try building 2-0 and see if I can reproduce your problem.
>
> Mark
>
> ________________________________________
> From: [email protected] [[email protected]] on behalf of Wilkins, Stuart [[email protected]]
> Sent: Wednesday, March 04, 2015 4:21 PM
> To: [email protected]
> Subject: Problem with HDF5 plugin for areaDetector
>
> Hi,
>
> I am having problems with the simdetector in Areadetector 2.0. I am running the HDF5 plugin and on trying to write a frame to disk, it segfaults. I have tried to start from a fresh state by taking away the save/restore files but nothing seems to fix it. Turning on traceback gives the errors below. Has anyone had this problem?
>
> Thanks,
> Stuart
>
> 2015/03/04 17:16:23.543 XF:23ID1-ES{Tst-Cam:1}HDF1:PoolFreeBuffers devAsynInt32 process value=0
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:ArrayCounter_RBV devAsynInt32::interruptCallbackInput new value=1
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:UniqueId_RBV devAsynInt32::interruptCallbackInput new value=4
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:TimeStamp_RBV devAsynFloat64::interruptCallbackInput new value=794355383.558608
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:EpicsTSSec_RBV devAsynInt32::interruptCallbackInput new value=794355383
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:EpicsTSNsec_RBV devAsynInt32::interruptCallbackInput new value=565638532
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:WriteStatus devAsynInt32::interruptCallbackInput new value=0
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:ArrayCounter_RBV devAsynInt32::getCallbackValue from ringBuffer value=1
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:UniqueId_RBV devAsynInt32::getCallbackValue from ringBuffer value=4
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:WriteFile devAsynBusy::interruptCallback new value=1
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:TimeStamp_RBV devAsynFloat64::getCallbackValue from ringBuffer value=794355383.558608
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:EpicsTSSec_RBV devAsynInt32::getCallbackValue from ringBuffer value=794355383
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:EpicsTSNsec_RBV devAsynInt32::getCallbackValue from ringBuffer value=565638532
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:WriteStatus devAsynInt32::getCallbackValue from ringBuffer value=0
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:WriteFile_RBV devAsynInt32::interruptCallbackInput new value=1
> 2015/03/04 17:16:23.566 XF:23ID1-ES{Tst-Cam:1}HDF1:WriteFile_RBV devAsynInt32::getCallbackValue from ringBuffer value=1
> 2015/03/04 17:16:23.566 NDFileHDF5::openFile Filename: /GPFS/xf23id/xf23id1/ccdtestdata/2015/3/4/4848c262-131d-49bb-b76a-db72c2ede134_000000.h5
> 2015/03/04 17:16:23.567 NDFileHDF5::openFile attribute list copied. num pArray attributes = 1 local copy = 1
> 2015/03/04 17:16:23.567 NDFileHDF5::configureDims  NDArray:   {     3, 1024, 1024, }
> 2015/03/04 17:16:23.567 NDFileHDF5::configureDims dimension report:
> framesize   1024,  1024,     3,
> chunkdims   1024,  1024,     3,
>   maxdims   1024,  1024,     3,
>      dims   1024,  1024,     3,
>    offset      0,     0,     0,
>   virtual      0,
> 2015/03/04 17:16:23.567 NDFileHDF5::createNewFile Setting istorek=1
> 2015/03/04 17:16:23.568 NDFileHDF5::createFileLayout Creating dataspace with given dimensions
> 2015/03/04 17:16:23.568 NDFileHDF5::createFileLayout Configuring chunking
> 2015/03/04 17:16:23.568 NDFileHDF5::createFileLayout Setting fillvalue
> 2015/03/04 17:16:23.568 NDFileHDF5::createFileLayout Empty layout file, use default layout
> 2015/03/04 17:16:23.569 NDFileHDF5::createXMLFileLayout Root tree: < Group: '' groups=1 dsets=0 attr=0>
>                                  < Group: '/entry' groups=2 dsets=0 attr=1>
>                                  < Group: '/entry/data' groups=0 dsets=0 attr=1>
>                                  < Group: '/entry/instrument' groups=3 dsets=0 attr=1>
>                                    < Group: '/entry/instrument/NDAttributes' groups=0 dsets=0 attr=1>
>                                    < Group: '/entry/instrument/detector' groups=1 dsets=1 attr=1>
>                                      < Group: '/entry/instrument/detector/NDAttributes' groups=0 dsets=1 attr=1>
>                                    < Group: '/entry/instrument/performance' groups=0 dsets=1 attr=0>
> 2015/03/04 17:16:23.569 NDFileHDF5::writeH5attrStr name=NX_class value=NXentry
> 2015/03/04 17:16:23.569 NDFileHDF5::writeH5attrStr name=NX_class value=NXdata
> 2015/03/04 17:16:23.569 NDFileHDF5::writeH5attrStr name=NX_class value=NXinstrument
> 2015/03/04 17:16:23.569 NDFileHDF5::writeH5attrStr name=NX_class value=NXcollection
> 2015/03/04 17:16:23.569 NDFileHDF5::writeH5attrStr name=NX_class value=NXdetector
> 2015/03/04 17:16:23.569 NDFileHDF5::createDatasetDetector Setting cache size=3145728 slots=0
> 2015/03/04 17:16:23.569 NDFileHDF5::createDatasetDetector Creating first empty dataset called "data"
> 2015/03/04 17:16:23.570 NDFileHDF5::writeH5attrStr name=NX_class value=SDS
> 2015/03/04 17:16:23.570 NDFileHDF5::writeH5attrInt32 name=signal value=1
> 2015/03/04 17:16:23.570 NDFileHDF5::writeH5attrStr name=NX_class value=NXcollection
> 2015/03/04 17:16:23.570 NDFileHDF5::createXMLFileLayout Default dataset name: /entry/instrument/detector/data
> 2015/03/04 17:16:23.570 NDFileHDF5::createAttributeDataset Creating attribute datasets. extradims=0 attribute count=1
> 2015/03/04 17:16:23.570 NDFileHDF5::writeFile getting attribute list
> 2015/03/04 17:16:23.570 NDFileHDF5::writeFile copying attribute list
> 2015/03/04 17:16:23.570 NDFileHDF5::writeFile: set_extent dims={1024,1024,3}
> HDF5-DIAG: Error detected in HDF5 (1.8.8) thread 139838595618560:
>  #000: ../../../src/H5Dio.c line 245 in H5Dwrite(): file selection+offset not within extent
>    major: Dataspace
>    minor: Out of range
> Segmentation fault
>
>


Replies:
Re: Problem with HDF5 plugin for areaDetector Wilkins, Stuart
References:
Problem with HDF5 plugin for areaDetector Wilkins, Stuart
RE: Problem with HDF5 plugin for areaDetector Mark Rivers
Re: Problem with HDF5 plugin for areaDetector Wilkins, Stuart

Navigate by Date:
Prev: Re: How to handle out-of-index of MBBO/MBBI? Jeong Han Lee
Next: Re: How to handle out-of-index of MBBO/MBBI? Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Problem with HDF5 plugin for areaDetector Wilkins, Stuart
Next: Re: Problem with HDF5 plugin for areaDetector Wilkins, Stuart
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·