Open
Description
Is there an existing issue for the same bug?
- I have checked the existing issues.
Version or Commit ID
main
Actual behavior and How to reproduce it
After execute below code in test_index_parallel.py:
@pytest.mark.parametrize("file_format", ["csv"])
def test_fulltext_index_rw_parallel(self, get_infinity_connection_pool, file_format):
def write_worker(connection_pool: ConnectionPool, data, file_path, end_time, thread_id):
infinity_obj = connection_pool.get_conn()
db_obj = infinity_obj.get_database("default_db")
table_obj = db_obj.get_table("test_fulltext_index_parallel")
while time.time() < end_time:
operation = random.randint(0, 1)
if operation == 0:
value = []
for i in range(len(data["doctitle"])):
value.append({"doctitle": data["doctitle"][i],
"docdate": data["docdate"][i], "body": data["body"][i]})
table_obj.insert(value)
print(f"thread {thread_id}: insert complete")
if operation == 1:
print(f"thread {thread_id}: begin import")
table_obj.import_data(file_path, {"delimiter": "\t"})
print(f"thread {thread_id}: import complete")
connection_pool.release_conn(infinity_obj)
def read_worker(connection_pool: ConnectionPool, end_time):
infinity_obj = connection_pool.get_conn()
db_obj = infinity_obj.get_database("default_db")
table_obj = db_obj.get_table("test_fulltext_index_parallel")
while time.time() < end_time:
res, extra_result = table_obj.output(["doctitle", "docdate", "_row_id", "_score"]).match_text(
"body^5", "harmful chemical", 3).to_pl()
print(res)
time.sleep(0.1)
connection_pool.release_conn(infinity_obj)
# prepare data for insert
column_names = ["doctitle", "docdate", "body"]
file_path = os.getcwd() + TEST_DATA_DIR + file_format + \
"/enwiki_99." + file_format
df = pandas.read_csv(file_path,
delimiter="\t",
header=None,
names=column_names)
data = {key: list(value.values())
for key, value in df.to_dict().items()}
# create index
connection_pool = get_infinity_connection_pool
infinity_obj = connection_pool.get_conn()
db_obj = infinity_obj.get_database("default_db")
res = db_obj.drop_table(
"test_fulltext_index_parallel", ConflictType.Ignore)
assert res.error_code == ErrorCode.OK
table_obj = db_obj.create_table("test_fulltext_index_parallel", {
"doctitle": {"type": "varchar"},
"docdate": {"type": "varchar"}, "body": {"type": "varchar"}}, ConflictType.Error)
table_obj.import_data(file_path, {"delimiter": "\t"})
res = table_obj.create_index("body_index",
index.IndexInfo("body",
index.IndexType.FullText))
assert res.error_code == ErrorCode.OK
threads = []
end_time = time.time() + kRuningTime
for i in range(kInsertThreadNum):
threads.append(Thread(target=write_worker, args=[
connection_pool, data, file_path, end_time, i]))
threads.append(Thread(target=read_worker, args=[
connection_pool, end_time]))
for i in range(len(threads)):
threads[i].start()
for i in range(len(threads)):
threads[i].join()
res = db_obj.drop_table(
"test_fulltext_index_parallel", ConflictType.Error)
connection_pool.release_conn(infinity_obj)
And then:
psql -h 0.0.0.0 -p 5432
psql (16.9 (Ubuntu 16.9-0ubuntu0.24.04.1), server 14)
Type "help" for help.
inf=> show catalog;
inf=> clean data;
An error will be occured.
[17:12:11.725] [184114] [critical] Error: CleanupNoLock object 0197a131-2823-7090-8c1d-71e4e6d4591e ref count is 1@src/storage/persistence/persistence_manager.cpp:513
[17:12:11.725] [184114] [critical] 0, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(___interceptor_backtrace+0x4a) [0x6551c014723a]
[17:12:11.725] [184114] [critical] 1, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x19e5ea1) [0x6551c0aefea1]
[17:12:11.725] [184114] [critical] 2, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x19e72a4) [0x6551c0af12a4]
[17:12:11.725] [184114] [critical] 3, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x284a302) [0x6551c1954302]
[17:12:11.725] [184114] [critical] 4, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x2855ce3) [0x6551c195fce3]
[17:12:11.725] [184114] [critical] 5, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x5c1044b) [0x6551c4d1a44b]
[17:12:11.725] [184114] [critical] 6, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x21bd56f) [0x6551c12c756f]
[17:12:11.725] [184114] [critical] 7, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x21b6a4b) [0x6551c12c0a4b]
[17:12:11.725] [184114] [critical] 8, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x21b5a4c) [0x6551c12bfa4c]
[17:12:11.725] [184114] [critical] 9, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x21b4082) [0x6551c12be082]
[17:12:11.725] [184114] [critical] 10, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x26ce66b) [0x6551c17d866b]
[17:12:11.725] [184114] [critical] 11, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x26d1802) [0x6551c17db802]
[17:12:11.725] [184114] [critical] 12, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x66c6d92) [0x6551c57d0d92]
[17:12:11.725] [184114] [critical] 13, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x201a78b) [0x6551c112478b]
[17:12:11.725] [184114] [critical] 14, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x1395c64) [0x6551c049fc64]
[17:12:11.725] [184114] [critical] 15, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x13954b1) [0x6551c049f4b1]
[17:12:11.725] [184114] [critical] 16, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x1e205eb) [0x6551c0f2a5eb]
[17:12:11.725] [184114] [critical] 17, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x1e1e665) [0x6551c0f28665]
[17:12:11.725] [184114] [critical] 18, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x1e1e06b) [0x6551c0f2806b]
[17:12:11.725] [184114] [critical] 19, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x4b68e70) [0x6551c3c72e70]
[17:12:11.725] [184114] [critical] 20, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x4b687be) [0x6551c3c727be]
[17:12:11.725] [184114] [critical] 21, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x4b673c6) [0x6551c3c713c6]
[17:12:11.725] [184114] [critical] 22, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x1c6fb2b) [0x6551c0d79b2b]
[17:12:11.725] [184114] [critical] 23, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x1c6f955) [0x6551c0d79955]
[17:12:11.725] [184114] [critical] 24, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x1c6f92d) [0x6551c0d7992d]
[17:12:11.725] [184114] [critical] 25, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x1c6f566) [0x6551c0d79566]
[17:12:11.725] [184114] [critical] 26, /home/inf/code/infinity_new/cmake-build-debug/src/infinity(+0x109125d) [0x6551c019b25d]
[17:12:11.725] [184114] [critical] 27, /lib/x86_64-linux-gnu/libc.so.6(+0x9caa4) [0x7f8a2749caa4]
[17:12:11.725] [184114] [critical] 28, /lib/x86_64-linux-gnu/libc.so.6(+0x129c3c) [0x7f8a27529c3c]
[17:12:11.725] [184114] [critical] CleanupNoLock object 0197a131-2823-7090-8c1d-71e4e6d4591e ref count is 1@src/storage/persistence/persistence_manager.cpp:513
UnrecoverableException CleanupNoLock object 0197a131-2823-7090-8c1d-71e4e6d4591e ref count is 1@src/storage/persistence/persistence_manager.cpp:513
[17:12:11.725] [184114] [critical] CleanupNoLock object 0197a131-2823-7090-8c1d-71e4e6d4591e ref count is 1@src/storage/persistence/persistence_manager.cpp:513
Signal: SIGUSR1 (signal SIGUSR1)
Expected behavior
No response
Additional information
No response