[MDEV-9277] Debian: the Lintian complains about "shlib-calls-exit" in ha_mroonga.so Created: 2015-12-14  Updated: 2023-01-23  Resolved: 2023-01-23

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - Mroonga
Affects Version/s: 10.0, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 10.10, 10.11
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Sergey Vojtovich Assignee: Tuukka Pasanen
Resolution: Fixed Votes: 0
Labels: mroonga

Issue Links:
PartOf
is part of MDEV-8378 Debian: the Lintian complains about m... Closed

 Description   

This is a split from MDEV-8378, priority and fix version inherited.

Lintian reports: http://labs.seravo.fi/~otto/mariadb-repo/mariadb-10.0-sid-amd64/lintian-0f7cb30.log and https://lintian.debian.org/tags/shlib-calls-exit.html

The listed shared library calls the C library exit() or _exit() functions.

In the case of an error, the library should instead return an appropriate error code to the calling program which can then determine how to handle the error, including performing any required clean-up.

In most cases, removing the call should be discussed with upstream, particularly as it may produce an ABI change.

Severity: wishlist, Certainty: possible

Check: shared-libs, Type: binary, udeb

This tag is marked experimental, which means that the code that generates it is not as well-tested as the rest of Lintian and might still give surprising results. Feel free to ignore experimental tags that do not seem to make sense, though of course bug reports are always welcome.

nm ./storage/mroonga/ha_mroonga.so|grep exit

                 U __cxa_atexit@@GLIBC_2.2.5
                 U exit@@GLIBC_2.2.5



 Comments   
Comment by Elena Stepanova [ 2022-11-10 ]

The report does not seem to be complaining about mroonga anymore:
https://lintian.debian.org/sources/mariadb-10.6
(that is, it complains a lot about mroonga, but not about shlib-calls-exit / exit-in-shared-library)
https://lintian.debian.org/tags/exit-in-shared-library
(but maybe the warning got suppressed, as was suggested in MDEV-9280)

Comment by Kouhei Sutou [ 2022-11-10 ]

otto Can we close this?

Comment by Otto Kekäläinen [ 2022-11-13 ]

I don't see any Lintian overrides about

{shlib-calls-exit}

in https://salsa.debian.org/mariadb-team/mariadb-server/-/blob/debian/latest/debian/source/lintian-overrides nor complaints about this specific issue in latest Lintian report at https://mariadb-team.pages.debian.net/-/mariadb-server/-/jobs/3505163/artifacts/debian/output/lintian.html

If illuusio agrees that this issue is either already fixed or has become obsolete, then feel free to close issue.

Note that there are other Lintian remarks about Mroonga still.

Comment by Tuukka Pasanen [ 2023-01-23 ]

I'll check this and close if there is no exit anymore.

Comment by Tuukka Pasanen [ 2023-01-23 ]

C exit still is there examined with objdump and I examined other storage engines (10.10):

  • MRoonga ha_mrooga.so ha exit
  • RockDB ha_rocksdb.so has exit
  • Connect ha_connect.so has exit
Comment by Tuukka Pasanen [ 2023-01-23 ]

There is several exit-functios used even in 10.3. They should be check are they causing problems.

Comment by Tuukka Pasanen [ 2023-01-23 ]

In MRoonga exit is inside function segv_handler which is only called when there is memory handling problem.

On Connect there is exit function tabrest.cpp but it's not build default and exit probably comes from libxml2 (which should not be there but it is) as it does not exit libmysqlservices.a or zlib libz.so. There is newer JIRA task for this MDEV-30432

my_rocks has exit on ha_rocks.cc

Comment by Tuukka Pasanen [ 2023-01-23 ]

There is nothing to be done. In mroonga there is signal handler but it's only used if build with:

  • vendor/groonga/src/groonga.c
  • vendor/groonga/src/httpd/nginx-module/ngx_http_groonga_module.c
    These files are not included when building inside MariaDB. It's safe to suppress them inside Lintian (which has already done)

In RocksDB is kind of builded in option if one has `rocksdb_allow_to_start_after_corruption` set to false then it should not start MariaDB server.

Connect should be handled in other JIRA task. Which has been already opened.

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