pmem / pmdk

Persistent Memory Development Kit
https://pmem.io
Other
1.34k stars 510 forks source link

pmem2_future/TEST[0-3]: failed pmemcheck #5596

Open szadam opened 1 year ago

szadam commented 1 year ago

ISSUE:

Environment Information

Please provide a reproduction of the bug:

[pmdk_thread_0] Valgrind log validation failed
[pmdk_thread_0] pmem2_future/TEST0: SETUP        (short/debug/pmemcheck/page)
[pmdk_thread_0] pmem2_future/TEST0:  [92mPASS [0m                         [00.293 s]
[pmdk_thread_0] pmem2_future/TEST1: SETUP        (short/debug/pmemcheck/cacheline)
[pmdk_thread_0] pmem2_future/TEST1:  [92mPASS [0m                         [00.303 s]
[pmdk_thread_0] pmem2_future/TEST1: SETUP        (short/debug/pmemcheck/byte)
[pmdk_thread_0] Last 0 lines of /home/jenkins-slave/workspace/PMDK-unittests-linux-py/pmdk_0/src/test/pmem2_future/err1.log below (whole file has 0 lines):
[pmdk_thread_0] Last 23 lines of /home/jenkins-slave/workspace/PMDK-unittests-linux-py/pmdk_0/src/test/pmem2_future/pmemcheck1.log below (whole file has 23 lines):
[pmdk_thread_0] ==31972== pmemcheck-1.0, a simple persistent store checker
[pmdk_thread_0] ==31972== Copyright (c) 2014-2020, Intel Corporation
[pmdk_thread_0] ==31972== Using Valgrind-3.20.0 and LibVEX; rerun with -h for copyright info
[pmdk_thread_0] ==31972== Command: /home/jenkins-slave/workspace/PMDK-unittests-linux-py/pmdk_0/src/test/pmem2_future/pmem2_future test_pmem2_future_mover /mnt/pmem0/pmem2_future_1/testfile 4096
[pmdk_thread_0] ==31972== Parent PID: 29072
[pmdk_thread_0] ==31972== 
[pmdk_thread_0] ==31972== 
[pmdk_thread_0] ==31972== Number of stores not made persistent: 1
[pmdk_thread_0] ==31972== Stores not made persistent properly:
[pmdk_thread_0] ==31972== [0]    at 0x4D1CF27: memmove_mov_avx_noflush (avxintrin.h:916)
[pmdk_thread_0] ==31972==    by 0x4C465DC: pmem_memmove_nodrain_eadr (init.c:102)
[pmdk_thread_0] ==31972==    by 0x4C3B5A3: pmem2_memmove_eadr (persist.c:528)
[pmdk_thread_0] ==31972==    by 0x4C37FB2: sync_operation_start (mover.c:126)
[pmdk_thread_0] ==31972==    by 0x4C37673: vdm_operation_impl (vdm.h:162)
[pmdk_thread_0] ==31972==    by 0x4C37347: future_poll (future.h:280)
[pmdk_thread_0] ==31972==    by 0x4C37496: async_chain_impl (future.h:352)
[pmdk_thread_0] ==31972==    by 0x40240D: future_poll (future.h:280)
[pmdk_thread_0] ==31972==    by 0x402813: test_pmem2_future_mover (pmem2_future.c:65)
[pmdk_thread_0] ==31972==    by 0x40257D: TEST_CASE_PROCESS (unittest.h:700)
[pmdk_thread_0] ==31972==    by 0x402B6A: main (pmem2_future.c:135)
[pmdk_thread_0] ==31972==         Address: 0x7800000        size: 4096        state: DIRTY
[pmdk_thread_0] ==31972== Total memory not made persistent: 4096
[pmdk_thread_0] ==31972== ERROR SUMMARY: 1 errors

How often bug is revealed: (always, often, rare):

always

Actual behavior:

Tests failed.

Expected behavior:

Tests should pass.

Details

wlemkows commented 1 year ago

This bug relates to the async functionality, which in release 1.13 is marked as deprecated https://github.com/pmem/pmdk/pull/5552. In this regard, it is not a critical issue.

janekmi commented 1 year ago

Note: It is related to libminiasync which is experimental.

janekmi commented 8 months ago

The asynchronous libpmem2 API has been scrapped. No fixes for this experimental library to the historical releases are expected.