-
-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Renamed Attribute in dense storage can't be deleted #1388
Labels
Component - C Library
Core C library issues (usually in the src directory)
Priority - 1. High 🔼
These are important issues that should be resolved in the next release
Type - Bug / Bugfix
Please report security issues to [email protected] instead of creating an issue on GitHub
Comments
This was referenced Jan 25, 2022
I've added a possible fix to #1389. The testsuite runs smoothly, and downstream works nicely too. |
Thank you for the proposed fix. We will be reviewing it shortly. |
@epourmal Thanks for the heads-up. |
kmuehlbauer
changed the title
Renamed Attribute in dense storage can't be deleted
[BUG] Renamed Attribute in dense storage can't be deleted
Jan 12, 2023
This was referenced Jan 12, 2023
derobins
changed the title
[BUG] Renamed Attribute in dense storage can't be deleted
Renamed Attribute in dense storage can't be deleted
May 4, 2023
derobins
added
Priority - 1. High 🔼
These are important issues that should be resolved in the next release
Component - C Library
Core C library issues (usually in the src directory)
Type - Bug / Bugfix
Please report security issues to [email protected] instead of creating an issue on GitHub
labels
May 4, 2023
vchoi-hdfgroup
added a commit
to vchoi-hdfgroup/hdf5
that referenced
this issue
May 3, 2024
…ute with corder tracking enabled The problem occurs in step 3(b) below which will delete the attribute with corder x from the creation order index v2 B-tree. The rename sequence in H5A__dense_rename() occurs in the following order: 1) The old attribute with corder x was removed from the creation order index v2 B-tree 2) The new renamed attribute was inserted via H5A__dense_insert(): (a) insert the attribute with new name j into the name index v2 B-tree (b) insert the attribute with corder x into the creation order index v2 B-tree 3) The old attribute was removed via H5A__dense_remove(): (a) remove the attribute with old name k from the name index v2 B-tree (b) remove the attribute with coorder x from the creation order index v2 B-tree Fix: deactivate the "corder_bt2_addr" field so that H5A__dense_remove() won't delete the attribute with corder x from the creation order index v2 B-tree.
lrknox
pushed a commit
that referenced
this issue
May 17, 2024
…corder tracking enabled (#4462) * Fix for github issue #1388: can't delete renamed dense attribute with corder tracking enabled The problem occurs in step 3(b) below which will delete the attribute with corder x from the creation order index v2 B-tree. The rename sequence in H5A__dense_rename() occurs in the following order: 1) The old attribute with corder x was removed from the creation order index v2 B-tree 2) The new renamed attribute was inserted via H5A__dense_insert(): (a) insert the attribute with new name j into the name index v2 B-tree (b) insert the attribute with corder x into the creation order index v2 B-tree 3) The old attribute was removed via H5A__dense_remove(): (a) remove the attribute with old name k from the name index v2 B-tree (b) remove the attribute with coorder x from the creation order index v2 B-tree Fix: deactivate the "corder_bt2_addr" field so that H5A__dense_remove() won't delete the attribute with corder x from the creation order index v2 B-tree.
Great! Thank you very much all involved at HDFGroup for fixing this issue. 🎉 🚀 |
lrknox
pushed a commit
to lrknox/hdf5
that referenced
this issue
May 20, 2024
…te with corder tracking enabled (HDFGroup#4462) * Fix for github issue HDFGroup#1388: can't delete renamed dense attribute with corder tracking enabled The problem occurs in step 3(b) below which will delete the attribute with corder x from the creation order index v2 B-tree. The rename sequence in H5A__dense_rename() occurs in the following order: 1) The old attribute with corder x was removed from the creation order index v2 B-tree 2) The new renamed attribute was inserted via H5A__dense_insert(): (a) insert the attribute with new name j into the name index v2 B-tree (b) insert the attribute with corder x into the creation order index v2 B-tree 3) The old attribute was removed via H5A__dense_remove(): (a) remove the attribute with old name k from the name index v2 B-tree (b) remove the attribute with coorder x from the creation order index v2 B-tree Fix: deactivate the "corder_bt2_addr" field so that H5A__dense_remove() won't delete the attribute with corder x from the creation order index v2 B-tree.
lrknox
added a commit
that referenced
this issue
May 23, 2024
* win32defs: Fix Wundef warning (#4467) * Refactor error handling code to eliminate internal ID calls (#4453) All calls to the H5I routines are now made in API routines (sometimes in FUNC_ENTER/LEAVE_* macros), except for some calls to H5E_clear_stack() within the library, but I'm planning to remove those over time. Also, made all the library internal error messages into static const variables, instead of malloc'ing them, which means that they can just be referenced and not copied. Several new and updated auto-generated header files were necessary to enable this. * CMake: Fix mingw/fortran build (#4466) * Update for blosc2 in plugins and prefix hdf5 cmake varnames (#4468) * Fix an issue where compound datatype member IDs can be leaked during conversion (#4459) Also fixes issues with handling of partially initialized datatypes during library shutdown * H5Group: Fix operator= (#4473) Closes #4472 * Fix github issue #2523: doxygen -- fix grammatically incorrect sentence alias (#4474) * Remove env step not used by CI in testing (#4476) * Add H5fortkit dependecy for H5Rff.F90 (#4482) * Properly clean up cache when failing to load an object header (#4477) * Properly clean up cache when failing to load an object header * Don't check message type a second time in H5G__open_oid if the first attempt returns error * Add more asserts to H5O__assert() to avoid segfaults --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> * Add a missing image from the original document (#4490) * Disable EOF checks for SWMR readers in more cases. (#4489) Fixes a race condition where the reader opens the file and sets its EOF from the file's size (from the stat() call in the driver open callback). Then, before the reader can read the file's superblock, a SWMR writer races in, extends the file, and closes the file, writing an updated superblock with the 'writer' and 'SWMR writer' flags in the superblock off (appropriately). Then the reader proceeds to read the superblock, and flags the EOF as wrong. Taking out the check for the 'writer' and 'SWMR writer' flags will cause SWMR readers to avoid flagging the file as incorrect. * Remove unnecessary fortran install (#4498) * Only one version of binaries is produced for platforms (#4496) * Fix for github issue #2220. (#4497) Document the limitation in the Passthrough Conncector section of the VOL Connector Author Guide. The limitation is posted by Neil in the github issue on Dec 22, 2022. * Release asset tarballs with no version filenames (#4494) * Improve spec. reading superblock into cache (a little) by using v2 size (#4491) * Improve spec. reading superblock into cache (a little) by using v2 size Instead of reading the absolute minimal possible, use the likely value of a v2+ superblock w/8-byte addresses & lengths. * Fix for github Issue #1388 can't delete renamed dense attribute with corder tracking enabled (#4462) * Fix for github issue #1388: can't delete renamed dense attribute with corder tracking enabled The problem occurs in step 3(b) below which will delete the attribute with corder x from the creation order index v2 B-tree. The rename sequence in H5A__dense_rename() occurs in the following order: 1) The old attribute with corder x was removed from the creation order index v2 B-tree 2) The new renamed attribute was inserted via H5A__dense_insert(): (a) insert the attribute with new name j into the name index v2 B-tree (b) insert the attribute with corder x into the creation order index v2 B-tree 3) The old attribute was removed via H5A__dense_remove(): (a) remove the attribute with old name k from the name index v2 B-tree (b) remove the attribute with coorder x from the creation order index v2 B-tree Fix: deactivate the "corder_bt2_addr" field so that H5A__dense_remove() won't delete the attribute with corder x from the creation order index v2 B-tree. * Fix/revert a libtool sed hack (#4501) * Revert "Remove Autotools sed hack (#3848)" This reverts commit 8b3ffde. * Fix libtool sed cleanup on MacOS Convert sed -i line to sed > libtool.bak && mv libtool.bak libtool to avoid non-portable -i option. * Update src/H5public.h * Set H5 specific vars immediately if legacy find (#4512) * Correct find process vars (vs in-line build) * Correct SZIP find * Everything is libaec 1.0.6 or newer * Correct option help text
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Component - C Library
Core C library issues (usually in the src directory)
Priority - 1. High 🔼
These are important issues that should be resolved in the next release
Type - Bug / Bugfix
Please report security issues to [email protected] instead of creating an issue on GitHub
If I add
before Dataset close in this test file, the Attribute can't be deleted. This could be another manifestation of https://forum.hdfgroup.org/t/bug-h5arename-fails-unexpectedly/4881
hdf5/test/tattr.c
Lines 2807 to 2810 in 4d45d05
More context:
Conclusion:
Something is going wrong in
H5A__dense_rename
. The above fix was introduced by @vchoi-hdfgroup, so maybe @vchoi-hdfgroup can give some insight here?hdf5/src/H5Adense.c
Lines 858 to 1027 in 4d45d05
The text was updated successfully, but these errors were encountered: