Bug #38604 Unexpected message when stopping debug mysqld
Submitted: 6 Aug 2008 13:09 Modified: 18 Jun 2012 7:36
Reporter: Olivier Chédru Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Errors Severity:S3 (Non-critical)
Version:5.1.26-rc OS:Any
Assigned to: Jon Olav Hauglid CPU Architecture:Any

[6 Aug 2008 13:09] Olivier Chédru
Description:
When stopping a debug mysqld, the following trace appears: twice

missing DBUG_RETURN or DBUG_VOID_RETURN macro in function "?func"

The cause of the problem is related to the way the thread handle_manager exits:

  my_thread_end();
  DBUG_RETURN(NULL);

and to the way the thread handle_connections_socketsexits:

  decrement_handler_count();
  DBUG_RETURN(0);

In both cases, my_thread_end() is called directly or indirectly before DBUG_RETURN. And my_thread_end() clears the thread-local storage used by DBUG_RETURN:

#if !defined(DBUG_OFF)
    /* tmp->dbug is allocated inside DBUG library */
    if (tmp->dbug)
    {
      DBUG_POP();
      free(tmp->dbug);
      tmp->dbug=0;
    }
#endif

How to repeat:
Start a debug mysqld and send control-C.
[6 Aug 2008 13:56] MySQL Verification Team
Thank you for the bug report.

080806 10:55:04 [Note] c:\dbs\5.1\bin\mysqld: ready for connections.
Version: '5.1.28-nt-debug-log'  socket: ''  port: 3510  Source distribution
080806 10:55:12 [Note] c:\dbs\5.1\bin\mysqld: Normal shutdown

c:\dbs\5.1\bin\mysqld: missing DBUG_RETURN or DBUG_VOID_RETURN macro in function "?func"
080806 10:55:12 [Note] Event Scheduler: Purging the queue. 0 events
c:\dbs\5.1\bin\mysqld: missing DBUG_RETURN or DBUG_VOID_RETURN macro in function "?func"
080806 10:55:14  InnoDB: Starting shutdown...
080806 10:55:15  InnoDB: Shutdown completed; log sequence number 0 46409
080806 10:55:15 [Note] c:\dbs\5.1\bin\mysqld: Shutdown complete
[18 Jun 2012 7:36] Jon Olav Hauglid
Fixed by a combination of patches for Bug#49025 and Bug#47474.
We now call DBUG_LEAVE before exiting thread.