make test fails for most tests on a Parallels VM
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.7k
- Forks
- 662
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 2
Description
I didn't see Parallels either way on list of supported VMs on the wiki page (https://github.com/mozilla/rr/wiki/Building-And-Installing), so I'm not sure if I'm barking up the wrong tree by trying to use rr in Parallels...
I'm running Parallels 9. I have PMU virtualization enabled. Guest OS is Ubuntu 14.04. I cloned the HEAD of rr's master branch, currently b0ae677d36dd4fcbbef41be0c01f45ee657e11b8. Built fine, but make test is failing for most the tests:
[dev@ubuntu:~/rr/obj (master)] $ make test
Running tests...
Test project /home/dev/rr/obj
Start 1: 64bit_child
1/1832 Test #1: 64bit_child ...............................................***Failed Error regular expression found in output. Regex=[FAILED] 0.36 sec
Start 2: 64bit_child-no-syscallbuf
2/1832 Test #2: 64bit_child-no-syscallbuf .................................***Failed Error regular expression found in output. Regex=[FAILED] 0.35 sec
Start 3: _llseek
3/1832 Test #3: _llseek ...................................................***Failed Error regular expression found in output. Regex=[FAILED] 0.24 sec
Start 4: _llseek-no-syscallbuf
4/1832 Test #4: _llseek-no-syscallbuf .....................................***Failed Error regular expression found in output. Regex=[FAILED] 0.25 sec
Start 5: accept
5/1832 Test #5: accept .................................................... Passed 0.33 sec
Start 6: accept-no-syscallbuf
6/1832 Test #6: accept-no-syscallbuf ......................................***Failed Error regular expression found in output. Regex=[FAILED] 0.30 sec
Start 7: alarm
7/1832 Test #7: alarm .....................................................***Failed Error regular expression found in output. Regex=[FAILED] 1.27 sec
Start 8: alarm-no-syscallbuf
8/1832 Test #8: alarm-no-syscallbuf .......................................***Failed Error regular expression found in output. Regex=[FAILED] 1.24 sec
Start 9: alarm2
9/1832 Test #9: alarm2 ....................................................***Failed Error regular expression found in output. Regex=[FAILED] 1.24 sec
Start 10: alarm2-no-syscallbuf
10/1832 Test #10: alarm2-no-syscallbuf ......................................***Failed Error regular expression found in output. Regex=[FAILED] 1.23 sec
Start 11: alsa_ioctl
11/1832 Test #11: alsa_ioctl ................................................***Failed Error regular expression found in output. Regex=[FAILED] 0.23 sec
Start 12: alsa_ioctl-no-syscallbuf
12/1832 Test #12: alsa_ioctl-no-syscallbuf ..................................***Failed Error regular expression found in output. Regex=[FAILED] 0.24 sec
Start 13: arch_prctl
13/1832 Test #13: arch_prctl ................................................***Failed Error regular expression found in output. Regex=[FAILED] 0.23 sec
Start 14: arch_prctl-no-syscallbuf
14/1832 Test #14: arch_prctl-no-syscallbuf ..................................***Failed Error regular expression found in output. Regex=[FAILED] 0.26 sec
Start 15: async_segv_ignored
15/1832 Test #15: async_segv_ignored ........................................***Failed Error regular expression found in output. Regex=[FAILED] 0.25 sec
Start 16: async_segv_ignored-no-syscallbuf
16/1832 Test #16: async_segv_ignored-no-syscallbuf .......................... Passed 0.16 sec
Start 17: at_threadexit
17/1832 Test #17: at_threadexit .............................................***Failed Error regular expression found in output. Regex=[FAILED] 0.31 sec
Start 18: at_threadexit-no-syscallbuf
18/1832 Test #18: at_threadexit-no-syscallbuf ...............................***Failed Error regular expression found in output. Regex=[FAILED] 0.27 sec
Start 19: bad_ip
19/1832 Test #19: bad_ip .................................................... Passed 0.17 sec
Start 20: bad_ip-no-syscallbuf
20/1832 Test #20: bad_ip-no-syscallbuf ......................................***Failed Error regular expression found in output. Regex=[FAILED] 0.24 sec
Start 21: bad_syscall
21/1832 Test #21: bad_syscall ...............................................***Failed Error regular expression found in output. Regex=[FAILED] 0.24 sec
Start 22: bad_syscall-no-syscallbuf
22/1832 Test #22: bad_syscall-no-syscallbuf .................................***Failed Error regular expression found in output. Regex=[FAILED] 0.23 sec
Start 23: barrier
If I look in Testing/Temporary/LastTest.log.tmp, I see things like:
Start testing: Sep 21 12:13 EDT
----------------------------------------------------------
1/1832 Testing: 64bit_child
1/1832 Test: 64bit_child
Command: "/bin/bash" "/home/dev/rr/src/test/basic_test.run" "-b" "/home/dev/rr" "/home/dev/rr/obj" "64bit_child"
Directory: /home/dev/rr/obj
"64bit_child" start time: Sep 21 12:13 EDT
Output:
----------------------------------------------------------
/home/dev/rr/src/test/util.sh: line 219: 18001 Aborted (core dumped) _RR_TRACE_DIR="$workdir" rr $GLOBAL_OPTIONS replay -a $replayflags > replay.out 2> replay.err
Test '64bit_child' FAILED: : error during replay:
--------------------------------------------------
[FATAL /home/dev/rr/src/ReplaySession.cc:847:check_ticks_consistency() errno: SUCCESS]
(task 18002 (rec:17999) at time 104)
-> Assertion `ticks_now == trace_ticks' failed to hold. ticks mismatch for 'SYSCALL: open'; expected 3086, got 4294970382
[FATAL /home/dev/rr/src/log.cc:283:emergency_debug() errno: SUCCESS] (session doesn't look interactive, aborting emergency debugging)
--------------------------------------------------
replay.out:
--------------------------------------------------
--------------------------------------------------
Test 64bit_child failed, leaving behind /tmp/rr-test-64bit_child-P3OscNkkp
To replay the failed test, run
_RR_TRACE_DIR=/tmp/rr-test-64bit_child-P3OscNkkp rr replay
<end of output>
Test time = 0.36 sec
----------------------------------------------------------
Test Fail Reason:
Error regular expression found in output. Regex=[FAILED]
"64bit_child" end time: Sep 21 12:13 EDT
"64bit_child" time elapsed: 00:00:00
----------------------------------------------------------
The output of perf list is:
[dev@ubuntu:~/rr/obj (master)] $ perf list
List of pre-defined events (to be used in -e):
cpu-cycles OR cycles [Hardware event]
instructions [Hardware event]
cache-references [Hardware event]
cache-misses [Hardware event]
branch-instructions OR branches [Hardware event]
branch-misses [Hardware event]
bus-cycles [Hardware event]
stalled-cycles-frontend OR idle-cycles-frontend [Hardware event]
ref-cycles [Hardware event]
cpu-clock [Software event]
task-clock [Software event]
page-faults OR faults [Software event]
context-switches OR cs [Software event]
cpu-migrations OR migrations [Software event]
minor-faults [Software event]
major-faults [Software event]
alignment-faults [Software event]
emulation-faults [Software event]
dummy [Software event]
L1-dcache-load-misses [Hardware cache event]
L1-dcache-store-misses [Hardware cache event]
L1-dcache-prefetch-misses [Hardware cache event]
L1-icache-load-misses [Hardware cache event]
LLC-loads [Hardware cache event]
LLC-stores [Hardware cache event]
LLC-prefetches [Hardware cache event]
dTLB-load-misses [Hardware cache event]
dTLB-store-misses [Hardware cache event]
iTLB-loads [Hardware cache event]
iTLB-load-misses [Hardware cache event]
branch-loads [Hardware cache event]
branch-load-misses [Hardware cache event]
branch-instructions OR cpu/branch-instructions/ [Kernel PMU event]
branch-misses OR cpu/branch-misses/ [Kernel PMU event]
bus-cycles OR cpu/bus-cycles/ [Kernel PMU event]
cache-misses OR cpu/cache-misses/ [Kernel PMU event]
cache-references OR cpu/cache-references/ [Kernel PMU event]
cpu-cycles OR cpu/cpu-cycles/ [Kernel PMU event]
instructions OR cpu/instructions/ [Kernel PMU event]
mem-loads OR cpu/mem-loads/ [Kernel PMU event]
mem-stores OR cpu/mem-stores/ [Kernel PMU event]
stalled-cycles-frontend OR cpu/stalled-cycles-frontend/ [Kernel PMU event]
rNNN [Raw hardware event descriptor]
cpu/t1=v1[,t2=v2,t3 ...]/modifier [Raw hardware event descriptor]
(see 'man perf-list' on how to encode it)
mem:<addr>[:access] [Hardware breakpoint]
[ Tracepoints not available: Permission denied ]
Also:
[dev@ubuntu:~/rr/obj (master)] $ dmesg | grep PMU
[ 5.040752] Performance Events: PEBS fmt1+, 16-deep LBR, IvyBridge events, full-width counters, Intel PMU driver.
[ 5.253574] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing make test in the Parallels Ubuntu 14.04 environment and inspect Testing/Temporary/LastTest.log.tmp, especially the check_ticks_consistency() failure at ReplaySession.cc:847. Review src/test/util.sh and the reported perf list and PMU information; done means establishing whether the failure is an rr defect or an unsupported Parallels PMU configuration, with the result documented or fixed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, linux
- Domain
- devtools, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100