[MDEV-3554] LP:759016 - 5.2.5 misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed. Created: 2011-04-12  Updated: 2012-10-04  Resolved: 2012-10-04

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: karpa (Inactive) Assignee: Unassigned
Resolution: Incomplete Votes: 0
Labels: Launchpad

Attachments: XML File LPexportBug759016.xml    

 Description   

110412 23:29:44 [ERROR] mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.

key_buffer_size=0
read_buffer_size=131072
max_used_connections=257
max_threads=258
threads_connected=22
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 135302502 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x7f0be1acb280
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x564790f8 thread_stack 0x48000
/usr/sbin/mysqld(my_print_stacktrace+0x2e) [0x99e25e]
/usr/sbin/mysqld(handle_segfault+0x382) [0x5ef952]
/lib64/libpthread.so.0 [0x307740eb10]
/usr/sbin/mysqld [0x8b81a1]
/usr/sbin/mysqld [0x923e17]
/usr/sbin/mysqld [0x8e603a]
/usr/sbin/mysqld [0x888f34]
/usr/sbin/mysqld(handler::read_range_next()+0x94) [0x6dbef4]
/usr/sbin/mysqld(handler::read_multi_range_next(st_key_multi_range**)+0x33) [0x6db653]
/usr/sbin/mysqld(QUICK_RANGE_SELECT::get_next()+0x156) [0x6c5fc6]
/usr/sbin/mysqld [0x6d97e0]
/usr/sbin/mysqld(filesort(THD*, st_table*, st_sort_field*, unsigned int, SQL_SELECT*, unsigned long long, bool, unsigned long long*)+0x9f3) [0x6da8b3]
/usr/sbin/mysqld [0x6677e7]
/usr/sbin/mysqld(JOIN::exec()+0x7f9) [0x670c39]
/usr/sbin/mysqld(mysql_select(THD*, Item**, TABLE_LIST, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*)+0x199) [0x672979]
/usr/sbin/mysqld(handle_select(THD*, st_lex*, select_result*, unsigned long)+0x167) [0x673257]
/usr/sbin/mysqld [0x5f8d31]
/usr/sbin/mysqld(mysql_execute_command(THD*)+0x394) [0x5fc214]
/usr/sbin/mysqld(mysql_parse(THD*, char*, unsigned int, char const**)+0x29a) [0x60247a]
/usr/sbin/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0x67b) [0x602afb]
/usr/sbin/mysqld(do_command(THD*)+0xf6) [0x603a06]
/usr/sbin/mysqld(handle_one_connection+0xa2) [0x5f5302]
/lib64/libpthread.so.0 [0x307740673d]
/lib64/libc.so.6(clone+0x6d) [0x3076cd3d1d]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x7f0bcc1a0ad8): is an invalid pointer
Connection ID (thread ID): 857307
Status: NOT_KILLED

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
mysqld: misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed.
Fatal signal 6 while backtracing

on Centos 5.5 x64
sorry no repeatable test case. single (at this time) sigfault.



 Comments   
Comment by Philip Stoev (Inactive) [ 2011-04-13 ]

Re: 5.2.5 misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed.
Hi,

Do you have a core file saved by any chance? It should be located in your data directory. If such a file exists, it may allow us to obtain a better, more informative stack trace.

Comment by Sergei Petrunia [ 2011-06-21 ]

Re: 5.2.5 misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed.
First, the obvious:

> mysqld: misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed.

The only misc.cpp we have is ./extra/yassl/taocrypt/src/misc.cpp which defines __cxa_pure_virtual() which C++ runtime calls when one calls virtual function.

Then, if one looks at stacktrace:

> /usr/sbin/mysqld(my_print_stacktrace+0x2e) [0x99e25e]
> /usr/sbin/mysqld(handle_segfault+0x382) [0x5ef952]
> /lib64/libpthread.so.0 [0x307740eb10]
> /usr/sbin/mysqld [0x8b81a1]
> /usr/sbin/mysqld [0x923e17]
> /usr/sbin/mysqld [0x8e603a]
> /usr/sbin/mysqld [0x888f34]
> /usr/sbin/mysqld(handler::read_range_next()+0x94) [0x6dbef4]

then they can see that the crash happens inside a storage engine. This is 5.2, it doesn't have index condition pushdown, so I guess the bad call is made by the storage engine (and not by call back to SQL layer).

Our most-used storage engines (Innodb/xtradb, Myisam, Aria, Heap) are written in C. The only engines that we build with that use C++ are PBXT and Oqgraph.

Comment by Sergei Petrunia [ 2011-06-21 ]

Re: 5.2.5 misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed.
/usr/sbin/mysqld [0x8b81a1]
/usr/sbin/mysqld [0x923e17]
/usr/sbin/mysqld [0x8e603a]
/usr/sbin/mysqld [0x888f34]
/usr/sbin/mysqld(handler::read_range_next()+0x94) [0x6dbef4]
/usr/sbin/mysqld(handler::read_multi_range_next(st_key_multi_range**)+0x33) [0x6db653]

Another interesting thing is that the stacktrace shows function names for functions at SQL layer but not inside the engine. Was the engine built without debug info for some reason?

Comment by Sergei Petrunia [ 2011-06-21 ]

Re: 5.2.5 misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed.
I don't think it's possible to analyze further with this information. Changing status to incomplete. Feel free to re-open if there is more info/comments.

Comment by Gurvan (Inactive) [ 2011-09-01 ]

Re: 5.2.5 misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed.
Dear,

I have the same problem. Centos 5.6 64bits.
I have upgrade MariaDB 1.50 -> 5.3.0 and after 24h, 7 crash in few minutes.

110901 18:37:35 [ERROR] mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.

key_buffer_size=0
read_buffer_size=131072
max_used_connections=273
max_threads=802
threads_connected=33
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 52672878 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x7f7bd3912610
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x4cd6f0f8 thread_stack 0x40000
/usr/sbin/mysqld(my_print_stacktrace+0x2e) [0x9eeade]
/usr/sbin/mysqld(handle_segfault+0x391) [0x610801]
/lib64/libpthread.so.0 [0x346280eb10]
/usr/sbin/mysqld(Item_func_case::find_item(String*)+0x58) [0x58a208]
/usr/sbin/mysqld(Item_func_case::val_str(String*)+0x1b) [0x58a3db]
/usr/sbin/mysqld(Item::send(Protocol*, String*)+0x50) [0x5545d0]
/usr/sbin/mysqld(select_send::send_data(List<Item>&)+0x133) [0x5fed83]
/usr/sbin/mysqld [0x67a7ab]
/usr/sbin/mysqld [0x6925fa]
/usr/sbin/mysqld(JOIN::exec()+0x83d) [0x6a0d2d]
/usr/sbin/mysqld(mysql_select(THD*, Item**, TABLE_LIST, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*)+0x199) [0x6a2dc9]
/usr/sbin/mysqld(handle_select(THD*, st_lex*, select_result*, unsigned long)+0x167) [0x6a3717]
/usr/sbin/mysqld [0x61a69c]
/usr/sbin/mysqld(mysql_execute_command(THD*)+0x3b4) [0x61ca74]
/usr/sbin/mysqld(mysql_parse(THD*, char*, unsigned int, char const**)+0x29a) [0x622d3a]
/usr/sbin/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0x4d1) [0x623211]
/usr/sbin/mysqld(do_command(THD*)+0xf6) [0x6242e6]
/usr/sbin/mysqld(handle_one_connection+0xbb) [0x61643b]
/lib64/libpthread.so.0 [0x346280673d]
/lib64/libc.so.6(clone+0x6d) [0x34620d3d1d]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x7f7ba1784d08): is an invalid pointer
Connection ID (thread ID): 7468213
Status: NOT_KILLED

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
mysqld: misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed.
mysqld: misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed.
110901 18:37:36 mysqld_safe Number of processes running now: 0
110901 18:37:36 mysqld_safe mysqld restarted

-------
Three crash have more information :

110901 18:42:52 [ERROR] mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.

key_buffer_size=0
read_buffer_size=131072
max_used_connections=44
max_threads=802
threads_connected=40
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 52672878 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x7ff5c810a380
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x412180f8 thread_stack 0x40000
/usr/sbin/mysqld(my_print_stacktrace+0x2e) [0x9eeade]
/usr/sbin/mysqld(handle_segfault+0x391) [0x610801]
/lib64/libpthread.so.0 [0x346280eb10]
/usr/sbin/mysqld(Item_func_case::find_item(String*)+0x58) [0x58a208]
/usr/sbin/mysqld(Item_func_case::val_str(String*)+0x1b) [0x58a3db]
/usr/sbin/mysqld(Item::send(Protocol*, String*)+0x50) [0x5545d0]
/usr/sbin/mysqld(select_send::send_data(List<Item>&)+0x133) [0x5fed83]
/usr/sbin/mysqld [0x67a7ab]
/usr/sbin/mysqld [0x6925fa]
/usr/sbin/mysqld(JOIN::exec()+0x83d) [0x6a0d2d]
/usr/sbin/mysqld(mysql_select(THD*, Item**, TABLE_LIST, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*)+0x199) [0x6a2dc9]
/usr/sbin/mysqld(handle_select(THD*, st_lex*, select_result*, unsigned long)+0x167) [0x6a3717]
/usr/sbin/mysqld [0x61a69c]
/usr/sbin/mysqld(mysql_execute_command(THD*)+0x3b4) [0x61ca74]
/usr/sbin/mysqld(mysql_parse(THD*, char*, unsigned int, char const**)+0x29a) [0x622d3a]
/usr/sbin/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0x4d1) [0x623211]
/usr/sbin/mysqld(do_command(THD*)+0xf6) [0x6242e6]
/usr/sbin/mysqld(handle_one_connection+0xbb) [0x61643b]
/lib64/libpthread.so.0 [0x346280673d]
/lib64/libc.so.6(clone+0x6d) [0x34620d3d1d]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x2cd26c8): SELECT mc.*,
CASE mc.time_present
when "00:00:00" then NULL
else DATE_FORMAT(mc.time_present, "%H:%i")
END AS time_present, divhome.shortname divhome,
divhome.id divhomeid,
divaway.id divawayid,
t1.name AS team1,
t2.name AS team2,
u.name AS editor,
(Select count(mp.id)
FROM jos_joomleague_match_player AS mp
WHERE mp.match_id = mc.id
AND (came_in=0 OR came_in=1)
AND mp.teamplayer_id in (
SELECT id
FROM jos_joomleague_team_player AS tp
WHERE tp.projectteam_id = mc.projectteam1_id
)
) AS homeplayers_count,
(Select count(ms.id)
FROM jos_joomleague_match_staff AS ms
WHERE ms.match_id = mc.id
AND ms.team_staff_id in (
SELECT id
FROM jos_joomleague_team_staff AS ts
WHERE ts.projectteam_id = mc.projectteam1_id
)
) AS homestaff_count,
(
Connection ID (thread ID): 859
Status: NOT_KILLED

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
110901 18:42:52 mysqld_safe Number of processes running now: 0
110901 18:42:52 mysqld_safe mysqld restarted
----------

Four crash, same log :

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x31989f8): SELECT mc.*,
CASE mc.time_present
when "00:00:00" then NULL
else DATE_FORMAT(mc.time_present, "%H:%i")
END AS time_present, divhome.shortname divhome,
divhome.id divhomeid,
divaway.id divawayid,
t1.name AS team1,
t2.name AS team2,
u.name AS editor,
(Select count(mp.id)
FROM jos_joomleague_match_player AS mp
WHERE mp.match_id = mc.id
AND (came_in=0 OR came_in=1)
AND mp.teamplayer_id in (
SELECT id
FROM jos_joomleague_team_player AS tp
WHERE tp.projectteam_id = mc.projectteam1_id
)
) AS homeplayers_count,
(Select count(ms.id)
FROM jos_joomleague_match_staff AS ms
WHERE ms.match_id = mc.id
AND ms.team_staff_id in (
SELECT id
FROM jos_joomleague_team_staff AS ts
WHERE ts.projectteam_id = mc.projectteam1_id
)
) AS homestaff_count,
(
Connection ID (thread ID): 3106
Status: NOT_KILLED

---------------

Five crash :

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x322d7d8): SELECT mc.*,
CASE mc.time_present
when "00:00:00" then NULL
else DATE_FORMAT(mc.time_present, "%H:%i")
END AS time_present, divhome.shortname divhome,
divhome.id divhomeid,
divaway.id divawayid,
t1.name AS team1,
t2.name AS team2,
u.name AS editor,
(Select count(mp.id)
FROM jos_joomleague_match_player AS mp
WHERE mp.match_id = mc.id
AND (came_in=0 OR came_in=1)
AND mp.teamplayer_id in (
SELECT id
FROM jos_joomleague_team_player AS tp
WHERE tp.projectteam_id = mc.projectteam1_id
)
) AS homeplayers_count,
(Select count(ms.id)
FROM jos_joomleague_match_staff AS ms
WHERE ms.match_id = mc.id
AND ms.team_staff_id in (
SELECT id
FROM jos_joomleague_team_staff AS ts
WHERE ts.projectteam_id = mc.projectteam1_id
)
) AS homestaff_count,
(
Connection ID (thread ID): 4744
Status: NOT_KILLED

----------

Six, same log.
Seven, no query trace.

I will try to remove the database.

Comment by Rasmus Johansson (Inactive) [ 2011-09-02 ]

Launchpad bug id: 759016

Comment by Philip Stoev (Inactive) [ 2011-09-02 ]

Re: 5.2.5 misc.cpp:103: int __cxa_pure_virtual(): Assertion `!"Aborted: pure virtual method called."' failed.
The last comment seems to refer to an issue with CASE + time fields. This is most probably bug

https://bugs.launchpad.net/maria/+bug/839387

Generated at Thu Feb 08 06:49:29 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.