Uploaded image for project: 'OpenAM Agents'
  1. OpenAM Agents
  2. AMAGENTS-3479

Unit test crash in test_config_lists due to environmental shared memory issue

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Expired
    • Affects Version/s: 5.6.3
    • Fix Version/s: None
    • Component/s: Web Agents
    • Labels:

      Description

      problem description
      In unit test report, there are two failures on 32bit mode for aix6 and aix7 for test_config_lists

      Output looks like this when run manually:
      [ RUN ] test_config_lists
      agent resource error: existing shared memory size is incompatible
      agent resource error: init: unable to get memory
      agent resource error: unable to initialise log memory

      With DBX the output looks like this:
      Segmentation fault in lookup_agent at line 151 in file "source/log.c" ($t1)
      151 if (skiplist_add(&state, levels, agent_index, agents[sz].hash, sz))
      (dbx) bt
      bt
      ^ unrecognized command
      (dbx) where
      lookup_agent(hash = 0), line 151 in "log.c"
      am_log_register_agent(agent_hash = 0, log = (nil), log_lm = 0, audit = (nil), audit_lm = 0, bootstrap = (nil)), line 240 in "log.c"
      test_config_lists(state = 0x10033318), line 167 in "test_config.c"
      cmocka_run_one_test_or_fixture(function_name = "test_config_lists", test_func = 0x2001f8b8, setup_func = (nil), teardown_func = (nil), state = 0x2002acf8, heap_check_point = 0x10e200a7), line 2716 in "cmocka.c"
      cmocka_run_one_tests(test_state = 0x100bf650), line 2824 in "cmocka.c"
      unnamed block in _cmocka_run_group_tests(group_name = (invalid char ptr (0xdeadbeef)), tests = 0xdeadbeef, num_tests = 3735928559, group_setup = 0xdeadbeef, group_teardown = 0x8f5e0cc2), line 2947 in "cmocka.c"
      _cmocka_run_group_tests(group_name = (invalid char ptr (0xdeadbeef)), tests = 0xdeadbeef, num_tests = 3735928559, group_setup = 0xdeadbeef, group_teardown = 0x8f5e0cc2), line 2947 in "cmocka.c"
      main(argc = 0, argv = (nil)), line 54 in "test_MAIN.c"
      (dbx)

      analysis
      This is essentially a test problem with environment management on the unit tests. The "existing shared memory size is incompatible" means a prior different version or bitsize of agent ran, and therefore the shared memory was not readable. At run time, apache could just be restarted.

      The easiest thing to do is to adapt the scripts to clean up shared memory before and after the tests eg
      ipcs -r -a then look for well known strings such as am_* and then delete them using ipcrm -r -m <name>

      We already do this for the exotic platform tests.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              alex.levin@forgerock.com Alex Levin
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: