In mcelog/tests/socket, each trigger is executed twice for an injected socket error
(Observed in RedHat.) For an error injected in socket space (in mcelog/tests/socket), the trigger script is invoked twice which causes the test to fail, complaining of incorrect number of trigger invokations. After looking into the code, I have found that, in memdb.c, in memory_error(), socket errors are really accounted twice:
/* ... / if (sockdb_enabled) { md = get_memdimm(m->socketid, -1, -1, 1); account_over(&sockets, md, m, corr_err_cnt); account_memdb(&sockets, md, m); } / ... */
This invokes two triggers (provided that thresholds are set appropriately): one from account_over (with note "Fallback memory error"), and another one from account_memdb. As this is, more or less, the expected behavior, I think the test should be updated to take this into account.
Hmm, ok might be some time since I ran the test suite on a multi socket system. Can you please submit a patch?
Hi , JiriDluhosRH I ran into the same problem。How do you solve it now ?。Modify the socket-x.conf's trigger 2 to 4 ? @andikleen , can you help to solve it , thanks very much! @JiriDluhosRH
Hi, JiriDluhosRH I have another problem. In mcelog/tests/page。The test result is : page-soft-then-hard.conf: triggers did not trigger as expected: 4 != 6 I think it inject 6 errors , so the trigger script should be invoked 6 times. But the page-soft-then-hard.conf has #trigger 4. If you have the same problem ? Thanks very much! @JiriDluhosRH