Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8312488

tools/jpackage/share/AppLauncherEnvTest.java fails with dynamically linked libstdc++

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P3
    • 22
    • 20, 21, 22
    • tools
    • None
    • b08
    • linux

    Description

      The generated image contains libjpackageapplauncheraux.so that contains a destructor function dcon().
      It sets static logger to the local nopLogAppender, and when the library is unloaded, the follow call sequence occurs:

      1) ----> libc runs exit handlers
      0x7ffff7f9e028 <(anonymous namespace)::nopLogAppender>
      libjpackageapplauncheraux.so!LogAppender::~LogAppender(LogAppender * const this) (/home/vladimirp/git/jdk/src/jdk.jpackage/share/native/common/Log.h:72)
      libjpackageapplauncheraux.so!NopLogAppender::~NopLogAppender(NopLogAppender * const this) (/home/vladimirp/git/jdk/src/jdk.jpackage/share/native/common/Log.h:78)
      libc.so.6!__run_exit_handlers(int status, struct exit_function_list ** listp, _Bool run_list_atexit, _Bool run_dtors) (exit.c:111)
      libc.so.6!__GI_exit(int status) (exit.c:141)
      libc.so.6!__libc_start_call_main(int (*)(int, char **, char **) main, int argc, char ** argv) (libc_start_call_main.h:74)
      libc.so.6!__libc_start_main_impl(int (*)(int, char **, char **) main, int argc, char ** argv, int (*)(int, char **, char **) init, void (*)(void) fini, void (*)(void) rtld_fini, void * stack_end) (libc-start.c:360)
      _start (Unknown Source:0)

      2) ---> the the exit handlers run destructor function , but logger is already disposed
      0x7ffff7f9e120 <(anonymous namespace)::defaultLoggerMemory>
      Logger::LOG_TRACE
      0x7ffff7f9e028 <(anonymous namespace)::nopLogAppender>

      libc.so.6!__pthread_kill_implementation(int no_tid, int signo, pthread_t threadid) (pthread_kill.c:44)
      libc.so.6!__pthread_kill_internal(int signo, pthread_t threadid) (pthread_kill.c:78)
      libc.so.6!__GI___pthread_kill(pthread_t threadid, int signo) (pthread_kill.c:89)
      libc.so.6!__GI_raise(int sig) (raise.c:26)
      libc.so.6!__GI_abort() (abort.c:79)
      libstdc++.so.6![Unknown/Just-In-Time compiled code] (Unknown Source:0)
      libstdc++.so.6!std::terminate() (Unknown Source:0)
      libstdc++.so.6!__cxa_pure_virtual (Unknown Source:0)
      libjpackageapplauncheraux.so!Logger::log(const Logger * const this, Logger::LogLevel logLevel, LPCTSTR fileName, int lineNum, LPCTSTR funcName, const tstring & message) (/home/vladimirp/git/jdk/src/jdk.jpackage/share/native/common/Log.cpp:132)
      libjpackageapplauncheraux.so!Logger::log(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::const_pointer message, LPCTSTR funcName, int lineNum, LPCTSTR fileName, Logger::LogLevel logLevel, const Logger * const this) (/usr/include/c++/12/bits/basic_string.tcc:238)
      libjpackageapplauncheraux.so!(anonymous namespace)::dcon() (/home/vladimirp/git/jdk/src/jdk.jpackage/linux/native/libapplauncher/LinuxLauncherLib.cpp:171)
      ld-linux-x86-64.so.2!_dl_call_fini(void * closure_map) (dl-call_fini.c:43)
      ld-linux-x86-64.so.2!_dl_fini() (dl-fini.c:114)
      libc.so.6!__run_exit_handlers(int status, struct exit_function_list ** listp, _Bool run_list_atexit, _Bool run_dtors) (exit.c:111)
      libc.so.6!__GI_exit(int status) (exit.c:141)
      libc.so.6!__libc_start_call_main(int (*)(int, char **, char **) main, int argc, char ** argv) (libc_start_call_main.h:74)
      libc.so.6!__libc_start_main_impl(int (*)(int, char **, char **) main, int argc, char ** argv, int (*)(int, char **, char **) init, void (*)(void) fini, void (*)(void) rtld_fini, void * stack_end) (libc-start.c:360)
      _start (Unknown Source:0)

      This causes a crash with the following message:

      pure virtual method called
      terminate called without an active exception

      Unexpected data in the output fails the test.

      Attachments

        Issue Links

          Activity

            People

              vpetko Vladimir Petko
              vpetko Vladimir Petko
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: