[MDEV-9841] Window functions: embedded server fails to start due to error code conflicts Created: 2016-03-31  Updated: 2016-04-14  Resolved: 2016-04-06

Status: Closed
Project: MariaDB Server
Component/s: Optimizer - Window functions
Fix Version/s: N/A

Type: Task Priority: Critical
Reporter: Sergei Petrunia Assignee: Sergei Petrunia
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
PartOf
is part of MDEV-6115 window functions as in the SQL standard Closed

 Description   

In window functions tree, embedded mtr fails like so:

./mysql-test-run --embedded t/alias.test 
...
Installing system database...
 
==============================================================================
 
TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------
 
worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
main.alias                               [ fail ]
        Test ended at 2016-03-31 13:23:14
 
CURRENT_TEST: main.alias
mysqltest: Can't initialize MySQL server

The failure comes from here

  #0  my_error_register (get_errmsgs=0x555555d69448 <get_server_errmsgs()>, first=1000, last=2001) at /home/psergey/dev-git/10.2-window-funcs-r10/mysys/my_error.c:245
  #1  0x0000555555d695ad in init_errmessage () at /home/psergey/dev-git/10.2-window-funcs-r10/sql/derror.cc:106
  #2  0x00005555559ceaa7 in init_common_variables () at /home/psergey/dev-git/10.2-window-funcs-r10/libmysqld/../sql/mysqld.cc:4515
  #3  0x00005555559d4e9b in init_embedded_server (argc=125, argv=0x5555575b1e18, groups=0x555556ab2300 <embedded_server_groups>) at /home/psergey/dev-git/10.2-window-funcs-r10/libmysqld/lib_sql.cc:559
  #4  0x00005555559b9063 in mysql_server_init (argc=7, argv=0x555556ca5540 <embedded_server_args>, groups=0x555556ab2300 <embedded_server_groups>) at /home/psergey/dev-git/10.2-window-funcs-r10/libmysql/libmysql.c:181
  #5  0x000055555597c7b3 in main (argc=18, argv=0x7fffffffe018) at /home/psergey/dev-git/10.2-window-funcs-r10/client/mysqltest.cc:8974

We are in

my_error_register (get_errmsgs=0x555555d69448 <get_server_errmsgs()>, first=1000, last=2001)

Trying to register server error messages with codes in [1000, 2000] range.

The problem is that error code 2000 is already used by the client error messages:

(gdb) p my_errmsgs_list->meh_next[0]
  $71 = {meh_next = 0x0, get_errmsgs = 0x555555be708d <get_client_errmsgs>, meh_first = 2000, meh_last = 2061}



 Comments   
Comment by Sergei Petrunia [ 2016-03-31 ]

Discussed with sanja, he has confirmed that this issue exist. The danger of running out of error message codes was discussed by him and either monty or serg.

Comment by Sergei Petrunia [ 2016-04-06 ]

Merged with Monty's fix for error messages. Pushed into the feature tree.

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