apache / trafficserver

Apache Traffic Serverâ„¢ is a fast, scalable and extensible HTTP/1.1 and HTTP/2 compliant caching proxy server.
https://trafficserver.apache.org/
Apache License 2.0
1.76k stars 782 forks source link

Remap plugin loading unit tests failing. #11284

Open ywkaras opened 2 months ago

ywkaras commented 2 months ago

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 commented 2 months ago

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 commented 2 months ago
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$