[MXS-4352] Debug assertion when server deleted with persist_runtime_changes=false Created: 2022-10-13  Updated: 2022-10-18  Resolved: 2022-10-18

Status: Closed
Project: MariaDB MaxScale
Component/s: Core
Affects Version/s: 22.08.1
Fix Version/s: 22.08.3

Type: Bug Priority: Trivial
Reporter: markus makela Assignee: markus makela
Resolution: Fixed Votes: 0
Labels: None


 Description   

With persis_runtime_changes=false, repeatedly creating and destroying a server ends up hitting the debug assertion in the configuration code:

debug assert at /home/markusjm/MaxScale/server/core/config.cc:1002 failed: this_unit.source_files.find(name) != this_unit.source_files.end()
alert  : MaxScale 6.4.3 received fatal signal 6. Commit ID: f75384e453cefd851f83e7504a53471db045cde9 System name: Linux Release string: NAME="Fedora Linux"
 
 
2022-10-13 17:23:08   notice : For a more detailed stacktrace, install GDB and add 'debug=gdb-stacktrace' under the [maxscale] section.
alert  :   /lib64/libc.so.6(+0x8ec4c): ??:?
  /lib64/libc.so.6(raise+0x16): :?
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZN8maxscale6Config21object_source_to_jsonERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x22d): server/core/config.cc:1003
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZNK6Server15json_attributesEv+0x42c): server/core/server.cc:798 (discriminator 4)
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZNK6Server12to_json_dataEPKc+0x85): server/core/server.cc:844
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZN13ServerManager29server_to_json_data_relationsEPK6ServerPKc+0x261): server/core/servermanager.cc:219
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x6c7122): server/core/servermanager.cc:183
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x6c8ef6): /usr/include/c++/12/bits/invoke.h:61
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x6c8a0d): /usr/include/c++/12/bits/invoke.h:117
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x6c82d0): /usr/include/c++/12/bits/std_function.h:292
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZNKSt8functionIFbP6ServerEEclES1_+0x49): /usr/include/c++/12/bits/std_function.h:592
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x6c652a): server/core/servermanager.cc:47 (discriminator 3)
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZN13ServerManager19server_list_to_jsonEPKc+0x5e): server/core/servermanager.cc:179 (discriminator 2)
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x6690cd): server/core/resource.cc:688
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZNK8Resource4callERK11HttpRequest+0x2b): server/core/resource.cc:151
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x66f50e): server/core/resource.cc:1641 (discriminator 2)
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x670d24): server/core/resource.cc:1838
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x6714c3): server/core/resource.cc:1908 (discriminator 2)
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x672508): /usr/include/c++/12/bits/invoke.h:61
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x672204): /usr/include/c++/12/bits/invoke.h:117
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x671ce6): /usr/include/c++/12/bits/std_function.h:291
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZNKSt8functionIFvvEEclEv+0x32): /usr/include/c++/12/bits/std_function.h:591
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(+0x7c3532): maxutils/maxbase/src/worker.cc:755
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZN7maxbase6Worker14handle_messageERNS_12MessageQueueERKNS_19MessageQueueMessageE+0x6c): maxutils/maxbase/src/worker.cc:904
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZN7maxbase17EventMessageQueue18handle_poll_eventsEPNS_6WorkerEjNS_8Pollable7ContextE+0x35c): maxutils/maxbase/src/messagequeue.cc:216 (discriminator 3)
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZN7maxbase6Worker14deliver_eventsEmNSt6chrono10time_pointINS1_3_V212steady_clockENS1_8durationIlSt5ratioILl1ELl1000000000EEEEEEPNS_8PollableEjNSA_7ContextE+0x1b7): maxutils/maxbase/src/worker.cc:1041
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZN7maxbase6Worker15poll_waiteventsEv+0x61b): maxutils/maxbase/src/worker.cc:1168
  /home/markusjm/build-develop/lib64/maxscale/libmaxscale-common.so.1.0.0(_ZN7maxbase6Worker3runEPNS_9SemaphoreE+0x12c): maxutils/maxbase/src/worker.cc:820
  bin/maxscale(_ZN7maxbase6Worker3runEv+0x1d): maxutils/maxbase/include/maxbase/worker.hh:602
  bin/maxscale(main+0x1783): server/core/gateway.cc:2240
  /lib64/libc.so.6(+0x29550): ??:?
  /lib64/libc.so.6(__libc_start_main+0x89): ??:0
  bin/maxscale(_start+0x25): ??:?

With release mode binaries this cause some runtime generated objects to have an empty string in the filename field instead of a JSON null value.


Generated at Thu Feb 08 04:28:01 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.