You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
I was experimenting with RocksDB as a back-end for mnesia table (https://github.com/aeternity/mnesia_rocksdb) and I was able to convert a table to rocksdb_copies successfully, however converting it back to disc_copies emptied the table after next restart. On the other hand, converting RocksDB table to ram_copies and only then to disc_copies was successful.
I've registered an issue in mnesia_rocksdb (aeternity/mnesia_rocksdb#53), but the decision there was that mnesia is resposible for converting to disc_copies.
To Reproduce
Start Erlang single node with mnesia_rocksdb in libs. Do the following:
Note that after table is transformed to disc_copies, the records (at least the first one) are still in it. They are available until the node is restarted.
Also note that two lines are commented out. Uncomment them, if you want to see how converting through ram_copies works.
Restart the node and do the following:
mnesia:start(),
ok = mnesia:wait_for_tables([schema, ?TABLE_NAME], 10000),
a = mnesia:dirty_first(?TABLE_NAME),
The last line throws an exception: "no match of right hand side value '$end_of_table'". Therefore, the table is empty.
Expected behavior
Table is converted to disc_copies without need to convert to ram_copies first and all the records of the table remain there.
Affected versions
I've tested on Debian Bookwork Linux on OTPs 26.1, 26.1.2, 26.2 and 27.0.1 and on Oracle Enterprise Linux 9 on OTP 26.2.1 and the bug consistently occurred. However, in the rocksdb_mnesia issue there is a mention that the bug is not reproducible on OTP 26.1.2 (I am not sure about the OS used).
The text was updated successfully, but these errors were encountered:
Describe the bug
I was experimenting with RocksDB as a back-end for mnesia table (https://github.com/aeternity/mnesia_rocksdb) and I was able to convert a table to
rocksdb_copies
successfully, however converting it back todisc_copies
emptied the table after next restart. On the other hand, converting RocksDB table toram_copies
and only then todisc_copies
was successful.I've registered an issue in
mnesia_rocksdb
(aeternity/mnesia_rocksdb#53), but the decision there was that mnesia is resposible for converting todisc_copies
.To Reproduce
Note that after table is transformed to
disc_copies
, the records (at least the first one) are still in it. They are available until the node is restarted.Also note that two lines are commented out. Uncomment them, if you want to see how converting through
ram_copies
works.The last line throws an exception: "no match of right hand side value '$end_of_table'". Therefore, the table is empty.
The definitions are as follows:
Expected behavior
Table is converted to
disc_copies
without need to convert toram_copies
first and all the records of the table remain there.Affected versions
I've tested on Debian Bookwork Linux on OTPs 26.1, 26.1.2, 26.2 and 27.0.1 and on Oracle Enterprise Linux 9 on OTP 26.2.1 and the bug consistently occurred. However, in the
rocksdb_mnesia
issue there is a mention that the bug is not reproducible on OTP 26.1.2 (I am not sure about the OS used).The text was updated successfully, but these errors were encountered: