[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#861736:



Control: tags -1 + patch

On Mon, 8 May 2017 14:34:31 +0000 PICCA Frederic-Emmanuel
<frederic-emmanuel.picca@synchrotron-soleil.fr> wrote:
> Here after rebuilding hdf5 in debug mode
> 
> :~/Debian/nexus$ ./bug.py
> H5get_libversion(majnum=0xbf8a5b04, minnum=0xbf8a5b08, relnum=0xbf8a5b0c) = SUCCEED;
> H5Eset_auto2(estack=H5P_DEFAULT, func=NULL, client_data=NULL) = SUCCEED;
> H5open() = SUCCEED;
> H5Pcreate(cls=8 (genprop class)) = 18 (genprop list);
> H5Pget_cache(plist=18 (genprop list), mdc_nelmts=0xbf8a5af8, rdcc_nslots=0xbf8a5afc, rdcc_nbytes=0xbf8a5b00, rdcc_w0=0xbf8a5b10) = SUCCEED;
> H5Pset_cache(plist=18 (genprop list), mdc_nelmts=0, rdcc_nslots=521, rdcc_nbytes=1024000, rdcc_w0=0.75) = SUCCEED;
> H5Pset_fclose_degree(plist=18 (genprop list), degree=H5F_CLOSE_STRONG) = SUCCEED;
> H5check_version(majnum=1, minnum=10, relnum=0) = SUCCEED;
> H5open() = SUCCEED;
> H5Fcreate(filename=0x82517ef8, flags=2, fcpl=H5P_DEFAULT, fapl=18 (genprop list)) = 0 (file);
> H5Pclose(plist=18 (genprop list)) = SUCCEED;
> ERROR: cannot open file: filenamenxs.h5
> Traceback (most recent call last):
>   File "./bug.py", line 5, in <module>
>     e.save("filenamenxs.h5", 'w5')
>   File "/usr/lib/python2.7/dist-packages/nxs/tree.py", line 868, in save
>     file = NeXusTree(filename, format)
>   File "/usr/lib/python2.7/dist-packages/nxs/napi.py", line 320, in __init__
>     raise NeXusError, "Could not %s %s"%(op,filename)

This error and others are caused by HDF5 handles being stored as int
instead of hid_t. This type changed from int to int64_t with release
1.10.0 of HDF5.

Please find attached a patch proposal.

Thanks,

_g.
diff -Nru nexus-4.3.2-svn1921/debian/changelog nexus-4.3.2-svn1921/debian/changelog
--- nexus-4.3.2-svn1921/debian/changelog	2016-07-22 23:05:27.000000000 +0200
+++ nexus-4.3.2-svn1921/debian/changelog	2017-05-09 19:49:46.000000000 +0200
@@ -1,3 +1,11 @@
+nexus (4.3.2-svn1921-5) UNRELEASED; urgency=medium
+
+  * QA upload.
+  * New patch hdf5-1.10-support.patch to fix incorrect type for HDF5
+    handles: should be hid_t instead of int (closes: #861736)
+
+ -- Gilles Filippini <pini@debian.org>  Tue, 09 May 2017 19:49:46 +0200
+
 nexus (4.3.2-svn1921-4) unstable; urgency=medium
 
   * QA upload.
diff -Nru nexus-4.3.2-svn1921/debian/patches/hdf5-1.10-support.patch nexus-4.3.2-svn1921/debian/patches/hdf5-1.10-support.patch
--- nexus-4.3.2-svn1921/debian/patches/hdf5-1.10-support.patch	1970-01-01 01:00:00.000000000 +0100
+++ nexus-4.3.2-svn1921/debian/patches/hdf5-1.10-support.patch	2017-05-09 19:49:46.000000000 +0200
@@ -0,0 +1,111 @@
+Description: HDF5 1.10.x uses 64 bit handles. They're not int anymore.
+Author: Gilles Filippini <pini@debian.org>
+Bug-Debian: https://bugs.debian.org/861736
+Index: nexus-4.3.2-svn1921/src/napi5.c
+===================================================================
+--- nexus-4.3.2-svn1921.orig/src/napi5.c
++++ nexus-4.3.2-svn1921/src/napi5.c
+@@ -54,12 +54,12 @@ extern  void *NXpData;
+           hsize_t iCurrentIDX;
+         } iStack5[NXMAXSTACK];
+         struct iStack5 iAtt5;
+-        int iFID;
+-        int iCurrentG;
+-        int iCurrentD;
+-        int iCurrentS;
+-        int iCurrentT;
+-        int iCurrentA;
++        hid_t iFID;
++        hid_t iCurrentG;
++        hid_t iCurrentD;
++        hid_t iCurrentS;
++        hid_t iCurrentT;
++        hid_t iCurrentA;
+         int iNX;
+         int iNXID;
+         int iStackPtr;
+@@ -434,7 +434,7 @@ NXstatus  NX5open(CONSTCHAR *filename, N
+   NXstatus  NX5makegroup (NXhandle fid, CONSTCHAR *name, CONSTCHAR *nxclass) 
+   {
+     pNexusFile5 pFile;
+-    herr_t iRet;
++    hid_t iRet;
+     hid_t iVID;
+     hid_t attr1,aid1, aid2;
+     char pBuffer[1024] = "";
+@@ -487,7 +487,7 @@ NXstatus  NX5open(CONSTCHAR *filename, N
+ 
+     pNexusFile5 pFile;
+     hid_t attr1, atype;
+-    herr_t iRet;
++    hid_t iRet;
+     char pBuffer[1024];
+     char data[128];
+           
+@@ -654,7 +654,7 @@ static hid_t nxToHDF5Type(int datatype)
+ 					  int compress_type, int64_t chunk_size[])
+   {
+       hid_t datatype1, dataspace, iNew;
+-      herr_t iRet;
++      hid_t iRet;
+       hid_t type, cparms = -1;
+       pNexusFile5 pFile;
+       char pBuffer[256];
+@@ -992,8 +992,8 @@ static hid_t nxToHDF5Type(int datatype)
+     return NX_OK;
+   }
+ /*------------------------------------------------------------------*/
+-static int getAttVID(pNexusFile5 pFile){
+-  int vid;
++static hid_t getAttVID(pNexusFile5 pFile){
++  hid_t vid;
+      if(pFile->iCurrentG == 0 && pFile->iCurrentD == 0){
+        /* global attribute */
+        vid = H5Gopen(pFile->iFID,"/", H5P_DEFAULT);
+@@ -1007,7 +1007,7 @@ static int getAttVID(pNexusFile5 pFile){
+      return vid;
+ }
+ /*---------------------------------------------------------------*/
+-static void killAttVID(pNexusFile5 pFile, int vid){
++static void killAttVID(pNexusFile5 pFile, hid_t vid){
+   if(pFile->iCurrentG == 0 && pFile->iCurrentD == 0){
+     H5Gclose(vid);
+   }
+@@ -1021,8 +1021,8 @@ static void killAttVID(pNexusFile5 pFile
+     pNexusFile5 pFile;
+     hid_t  attr1, aid1, aid2;
+     hid_t type;
+-    herr_t iRet;
+-    int vid;  
++    hid_t iRet;
++    hid_t vid;  
+ 
+     pFile = NXI5assert (fid);
+ 
+@@ -2028,7 +2028,7 @@ static int countObjectsInGroup(hid_t loc
+      int iPType,rank;
+      char *iname = NULL, *vlen_str = NULL; 
+      hsize_t idx, intern_idx=-1;
+-     int vid;
++     hid_t vid;
+      H5O_info_t oinfo;
+ 
+      pFile = NXI5assert (fileid);
+@@ -2105,7 +2105,7 @@ static int countObjectsInGroup(hid_t loc
+ 			 void *data, int* datalen, int* iType)
+    {
+      pNexusFile5 pFile;
+-     int iNew, vid;
++     hid_t iNew, vid;
+      herr_t iRet;
+      hid_t type, atype = -1;
+      char pBuffer[256];
+@@ -2157,7 +2157,7 @@ static int countObjectsInGroup(hid_t loc
+    {
+      pNexusFile5 pFile;
+      hid_t idx;
+-     int vid;
++     hid_t vid;
+      H5O_info_t oinfo;
+     
+      pFile = NXI5assert (fid);
diff -Nru nexus-4.3.2-svn1921/debian/patches/series nexus-4.3.2-svn1921/debian/patches/series
--- nexus-4.3.2-svn1921/debian/patches/series	2016-07-22 23:05:27.000000000 +0200
+++ nexus-4.3.2-svn1921/debian/patches/series	2017-05-09 19:49:46.000000000 +0200
@@ -1,2 +1,3 @@
 0001-these-days-nexus-without-hdf5-is-considered-broken.patch
 fix-hdf5-1-10-detection.patch
+hdf5-1.10-support.patch

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: