panda icon indicating copy to clipboard operation
panda copied to clipboard

some python examples or test seem can not run in python3 version>=3.8.

Open Michael-c0de opened this issue 1 year ago • 2 comments

root@a3a518ae93f7:/panda/panda/python/tests# ./record_then_replay.py using generic i386 os_name=[linux-32-ubuntu:4.4.200-170-generic] PANDA[core]:os_familyno=2 bits=32 os_details=ubuntu:4.4.200-170-generic [PYPANDA] Panda args: [/usr/local/lib/python3.9/site-packages/pandare/data/i386-softmmu/libpanda-i386.so -L /usr/local/lib/python3.9/site-packages/pandare/data/pc-bios /root/.panda/ubuntu_1604_x86.qcow -display none -m 1024 -serial unix:/tmp/pypanda_ste8lkgp1,server,nowait -monitor unix:/tmp/pypanda_mdd6t0iep,server,nowait] Warning: disabling TB chaining to support before_block_exec callback Taking recording (wait ~15s)... writing snapshot: ./test.recording-rr-snp opening nondet log for write: ./test.recording-rr-nondet.log Finalizing the recording ...complete! Finished recording Done with recording. Observed 38988 bbs Starting replay. Please wait a moment... PANDA[osi_linux]:W> failed to read task.start_time_offset PANDA[osi_linux]:W> failed to read task.switch_task_hook_addr PANDA[osi_linux]:W> kernelinfo bytes [20-23] not read PANDA[syscalls2]:using profile for linux x86 32-bit NOT pandalooging asidstory: summary_mode = 0 loading snapshot ... done. opening nondet log for read : ./test.recording-rr-nondet.log ./test.recording-rr-nondet.log: 115021003 instrs total. no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory Entering execve -- filename = [/bin/date no pandalog -- output to file named asidstory asid for process changed! bash pid=8598 ... was 0x33d74ee0 is 33d74c40 no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory Entering execve -- filename = [/usr/bin/head no pandalog -- output to file named asidstory asid for process changed! bash pid=2198 ... was 0x33d745a0 is 34279ae0 no pandalog -- output to file named asidstory Entering execve -- filename = [/bin/cat Entering execve -- filename = [/usr/bin/md5sum no pandalog -- output to file named asidstory asid for process changed! bash pid=2197 ... was 0x33d74c40 is 34279000 asid for process changed! bash pid=2199 ... was 0x33d745e0 is 34279440 no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory no pandalog -- output to file named asidstory Replay completed successfully user 1112869 kernel 12695673 01cd3000 15560 33ac8d40 271834 33adc1e0 173420 33d745a0 219256 33d745e0 242326 33d74c40 661290 33d74ee0 116069 33d95f20 153739 33d95f60 18764 34279000 7598437 34279440 707109 34279ae0 921631 342a7860 2302970 34c0ad20 306788 34c2a9e0 99349 no pandalog -- output to file named asidstory check_proc_succ = c89a92 check_proc_tot = d2b39e Exiting cpu_handle_execption loop Finished replay 38988 blocks are in original execution. 0 blocks captured in recording. 0 of the recorded blocks are in the original execution. 0 of the original blocks are in replay Traceback (most recent call last): File "/panda/panda/python/tests/./record_then_replay.py", line 68, in assert(rep_in_orig > 0.99*repl_block_c), "Not enough blocks from replay were in original" AssertionError: Not enough blocks from replay were in original

Michael-c0de avatar Nov 03 '23 21:11 Michael-c0de

Apparently assert has been triggered, and I'm guessing that the new version of python is clearly incompatible with some parts.

cctv130 avatar Nov 04 '23 06:11 cctv130

Hi @Michael-c0de, thanks for reporting this - we've been using newer versions of python without issue for a while, but I don't believe this test is part of our CI so perhaps it's broken. In your run it looks like no blocks were recorded as executing during the replay (though it did detect processes changing). I suspect there might be a bug with this test itself, not the underlying functionality. We can take a look.

AndrewFasano avatar Nov 06 '23 14:11 AndrewFasano