trafficserver icon indicating copy to clipboard operation
trafficserver copied to clipboard

Remap plugin loading unit tests failing.

Open ywkaras opened this issue 10 months ago • 2 comments

In src/proxy/http/remap/unit-tests: test_PluginDso.cc test_PluginFactory.cc test_RemapPlugin.cc

They build, but fail on the dlopen() call. The test plugins (also in this directory) used by this test build on all supported OSes except OSX.

ywkaras avatar Apr 23 '24 19:04 ywkaras

Some results from Red Hat Enterprise LInux.

--- test_PluginDso ---
...
../src/proxy/http/remap/PluginDso.cc:135:load() plugin 'plugin_v1.so' failed to load: /tmp/sandbox_31leGz/runtime/plugin_v1.so: undefined symbol: pluginThreadContext
...

--- test_PluginFactory ---
...
../src/proxy/http/remap/PluginDso.cc:135:load() plugin 'plugin_v1.so' failed to load: /tmp/sandbox_E9OrQt/runtime/c71e2bab-90dc-4770-9535-c9304c3de38e/tmp/sandbox_E9OrQt/search/plugin_v1.so: undefined symbol: pluginThreadContext
...

--- test_RemapPluginInfo ---
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:63:PluginDso() PluginDso (0x1057860) created _configPath: [plugin_required_cb.so] _effectivePath: [/tmp/sandbox_yMkbHX/search/plugin_required_cb.so] _runtimePath: [/tmp/sandbox_yMkbHX/runtime/plugin_required_cb.so]
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:85:load() plugin 'plugin_required_cb.so' started loading DSO
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:92:load() plugin 'plugin_required_cb.so' effective path: /tmp/sandbox_yMkbHX/search/plugin_required_cb.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:115:load() plugin 'plugin_required_cb.so' runtime path: /tmp/sandbox_yMkbHX/runtime/plugin_required_cb.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:120:load() plugin 'plugin_required_cb.so' modification time 1713906108
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:144:load() plugin 'plugin_required_cb.so' finished loading DSO
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:58:getFunctionSymbol() plugin 'plugin_required_cb.so' found symbol 'TSRemapInit'
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:58:getFunctionSymbol() plugin 'plugin_required_cb.so' found symbol 'TSRemapDoRemap'
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:114:load() plugin 'plugin_required_cb.so' callbacks validated
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:63:PluginDso() PluginDso (0x1057860) created _configPath: [plugin_missing_init.so] _effectivePath: [/tmp/sandbox_yMkbHX/search/plugin_missing_init.so] _runtimePath: [/tmp/sandbox_yMkbHX/runtime/plugin_missing_init.so]
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:85:load() plugin 'plugin_missing_init.so' started loading DSO
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:92:load() plugin 'plugin_missing_init.so' effective path: /tmp/sandbox_yMkbHX/search/plugin_missing_init.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:115:load() plugin 'plugin_missing_init.so' runtime path: /tmp/sandbox_yMkbHX/runtime/plugin_missing_init.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:120:load() plugin 'plugin_missing_init.so' modification time 1713906108
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:144:load() plugin 'plugin_missing_init.so' finished loading DSO
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:58:getFunctionSymbol() plugin 'plugin_missing_init.so' found symbol 'TSRemapDoRemap'
../src/proxy/http/remap/RemapPluginInfo.cc:116:load() plugin 'plugin_missing_init.so' callbacks validation failed: plugin plugin_missing_init.so missing required function TSRemapInit
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:63:PluginDso() PluginDso (0x1057860) created _configPath: [plugin_missing_doremap.so] _effectivePath: [/tmp/sandbox_yMkbHX/search/plugin_missing_doremap.so] _runtimePath: [/tmp/sandbox_yMkbHX/runtime/plugin_missing_doremap.so]
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:85:load() plugin 'plugin_missing_doremap.so' started loading DSO
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:92:load() plugin 'plugin_missing_doremap.so' effective path: /tmp/sandbox_yMkbHX/search/plugin_missing_doremap.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:115:load() plugin 'plugin_missing_doremap.so' runtime path: /tmp/sandbox_yMkbHX/runtime/plugin_missing_doremap.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:120:load() plugin 'plugin_missing_doremap.so' modification time 1713906108
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:144:load() plugin 'plugin_missing_doremap.so' finished loading DSO
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:58:getFunctionSymbol() plugin 'plugin_missing_doremap.so' found symbol 'TSRemapInit'
../src/proxy/http/remap/RemapPluginInfo.cc:116:load() plugin 'plugin_missing_doremap.so' callbacks validation failed: plugin plugin_missing_doremap.so missing required function TSRemapDoRemap
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:63:PluginDso() PluginDso (0x1057860) created _configPath: [plugin_missing_deleteinstance.so] _effectivePath: [/tmp/sandbox_yMkbHX/search/plugin_missing_deleteinstance.so] _runtimePath: [/tmp/sandbox_yMkbHX/runtime/plugin_missing_deleteinstance.so]
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:85:load() plugin 'plugin_missing_deleteinstance.so' started loading DSO
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:92:load() plugin 'plugin_missing_deleteinstance.so' effective path: /tmp/sandbox_yMkbHX/search/plugin_missing_deleteinstance.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:115:load() plugin 'plugin_missing_deleteinstance.so' runtime path: /tmp/sandbox_yMkbHX/runtime/plugin_missing_deleteinstance.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:120:load() plugin 'plugin_missing_deleteinstance.so' modification time 1713906108
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:144:load() plugin 'plugin_missing_deleteinstance.so' finished loading DSO
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:58:getFunctionSymbol() plugin 'plugin_missing_deleteinstance.so' found symbol 'TSRemapInit'
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:58:getFunctionSymbol() plugin 'plugin_missing_deleteinstance.so' found symbol 'TSRemapNewInstance'
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:58:getFunctionSymbol() plugin 'plugin_missing_deleteinstance.so' found symbol 'TSRemapDoRemap'
../src/proxy/http/remap/RemapPluginInfo.cc:116:load() plugin 'plugin_missing_deleteinstance.so' callbacks validation failed: plugin plugin_missing_deleteinstance.so missing required function TSRemapDeleteInstance if TSRemapNewInstance is defined
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:63:PluginDso() PluginDso (0x1057860) created _configPath: [plugin_missing_newinstance.so] _effectivePath: [/tmp/sandbox_yMkbHX/search/plugin_missing_newinstance.so] _runtimePath: [/tmp/sandbox_yMkbHX/runtime/plugin_missing_newinstance.so]
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:85:load() plugin 'plugin_missing_newinstance.so' started loading DSO
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:92:load() plugin 'plugin_missing_newinstance.so' effective path: /tmp/sandbox_yMkbHX/search/plugin_missing_newinstance.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:115:load() plugin 'plugin_missing_newinstance.so' runtime path: /tmp/sandbox_yMkbHX/runtime/plugin_missing_newinstance.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:120:load() plugin 'plugin_missing_newinstance.so' modification time 1713906108
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:144:load() plugin 'plugin_missing_newinstance.so' finished loading DSO
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:58:getFunctionSymbol() plugin 'plugin_missing_newinstance.so' found symbol 'TSRemapInit'
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:58:getFunctionSymbol() plugin 'plugin_missing_newinstance.so' found symbol 'TSRemapDeleteInstance'
(plugin_dso) ../src/proxy/http/remap/RemapPluginInfo.cc:58:getFunctionSymbol() plugin 'plugin_missing_newinstance.so' found symbol 'TSRemapDoRemap'
../src/proxy/http/remap/RemapPluginInfo.cc:116:load() plugin 'plugin_missing_newinstance.so' callbacks validation failed: plugin plugin_missing_newinstance.so missing required function TSRemapNewInstance if TSRemapDeleteInstance is defined
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:63:PluginDso() PluginDso (0x1057860) created _configPath: [plugin_testing_calls.so] _effectivePath: [/tmp/sandbox_yMkbHX/search/plugin_testing_calls.so] _runtimePath: [/tmp/sandbox_yMkbHX/runtime/plugin_testing_calls.so]
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:85:load() plugin 'plugin_testing_calls.so' started loading DSO
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:92:load() plugin 'plugin_testing_calls.so' effective path: /tmp/sandbox_yMkbHX/search/plugin_testing_calls.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:115:load() plugin 'plugin_testing_calls.so' runtime path: /tmp/sandbox_yMkbHX/runtime/plugin_testing_calls.so
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:120:load() plugin 'plugin_testing_calls.so' modification time 1713906108
../src/proxy/http/remap/PluginDso.cc:135:load() plugin 'plugin_testing_calls.so' failed to load: /tmp/sandbox_yMkbHX/runtime/plugin_testing_calls.so: undefined symbol: mutexAllocator
(plugin_dso) ../src/proxy/http/remap/PluginDso.cc:144:load() plugin 'plugin_testing_calls.so' finished loading DSO

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test_RemapPluginInfo is a Catch v2.13.8 host application.
Run with -? for options

-------------------------------------------------------------------------------
Scenario: invoking plugin init
      Given: plugin init function
-------------------------------------------------------------------------------
../src/proxy/http/remap/unit-tests/test_RemapPlugin.cc:246
...............................................................................

../src/proxy/http/remap/unit-tests/test_RemapPlugin.cc:252: FAILED:
  CHECK( true == result )
with expansion:
  true == false

-------------------------------------------------------------------------------
Scenario: invoking plugin init
      Given: plugin init function
       When: init succeeds
-------------------------------------------------------------------------------
../src/proxy/http/remap/unit-tests/test_RemapPlugin.cc:254
...............................................................................

../src/proxy/http/remap/unit-tests/test_RemapPlugin.cc:254: FAILED:
  {Unknown expression after the reported line}
due to a fatal error condition:
  SIGSEGV - Segmentation violation signal

===============================================================================
test cases:  2 |  1 passed | 1 failed
assertions: 30 | 28 passed | 2 failed

Segmentation fault (core dumped)
wkaras ~/REPOS/TS/build/src/proxy/http/remap/unit-tests
O$ nm -C -A test_*Plugin* | grep -F pluginThreadContext
test_PluginDso:0000000000000000 B pluginThreadContext
test_PluginFactory:0000000000000000 B pluginThreadContext
test_PluginFactory:0000000000518c65 W TLS wrapper function for pluginThreadContext
test_RemapPluginInfo:0000000000000000 B pluginThreadContext
test_RemapPluginInfo:00000000004fb487 W TLS wrapper function for pluginThreadContext
wkaras ~/REPOS/TS/build/src/proxy/http/remap/unit-tests
O$

ywkaras avatar Apr 23 '24 21:04 ywkaras

wkaras ~/REPOS/TS/build/src/proxy/http/remap/unit-tests
O$ nm -C -A test_RemapPluginInfo | grep -F mutexAllocator
test_RemapPluginInfo:000000000052083c t _GLOBAL__sub_I_mutexAllocator
test_RemapPluginInfo:0000000000622400 B mutexAllocator
wkaras ~/REPOS/TS/build/src/proxy/http/remap/unit-tests
O$

ywkaras avatar Apr 24 '24 02:04 ywkaras

closed by https://github.com/apache/trafficserver/pull/11367

brbzull0 avatar Oct 07 '24 13:10 brbzull0