← Back to team overview

maria-discuss team mailing list archive

Re: MariaDB 10.1.x: tablespace does not exist or is just being dropped

 

https://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html



MariaDB [dbmail]> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE '%#sql%';
+----------+----------------------+------+--------+-------+-------------+------------+---------------+
| TABLE_ID | NAME | FLAG | N_COLS | SPACE | FILE_FORMAT | ROW_FORMAT | ZIP_PAGE_SIZE |
+----------+----------------------+------+--------+-------+-------------+------------+---------------+
| 672 | dbmail/#sql2-704-271 | 41 | 5 | 545 | Barracuda | Compressed | 8192 |
+----------+----------------------+------+--------+-------+-------------+------------+---------------+
1 row in set (0,00 sec)
_________________

MariaDB [dbmail]> drop table `#sql2-704-271`;
ERROR 1051 (42S02): Unknown table 'dbmail.#sql2-704-271'
MariaDB [dbmail]>

To identify orphan temporary tables on your system, you can view Table Monitor output or query INFORMATION_SCHEMA.INNODB_SYS_TABLES. Look for table names that begin with #sql. If the original table resides in a file-per-table tablespace, the tablespace file (the #sql-*.ibd file) for the orphan temporary table should be visible in the database directory.

SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE '%#sql%';

To remove an orphan temporary table, drop the table by issuing a DROP TABLE statement, prefixing the name of the table with #mysql50# and enclosing the table name in backticks. For example:

mysql> DROP TABLE `#mysql50##sql-540_3`;
_________________

bullshit - damned crap

MariaDB [dbmail]> drop table `#sql2-704-271`;
ERROR 1051 (42S02): Unknown table 'dbmail.#sql2-704-271'
MariaDB [dbmail]> drop table `#dbmail##sql2-704-271`;
ERROR 1051 (42S02): Unknown table 'dbmail.#dbmail##sql2-704-271'
MariaDB [dbmail]> drop table `##sql2-704-271`;
ERROR 1051 (42S02): Unknown table 'dbmail.##sql2-704-271'
MariaDB [dbmail]>

MariaDB [dbmail]> drop table `#mysql50##sql2-704-271`;
ERROR 1051 (42S02): Unknown table 'dbmail.#mysql50##sql2-704-271'
MariaDB [dbmail]>

Am 23.01.2017 um 22:38 schrieb Reindl Harald:
damned bullshit - drop it from table space and just shut up when it is
not needed fpr a decade

2017-01-23 22:35:32 140667474868544 [ERROR] InnoDB: Could not find a
valid tablespace file for 'dbmail/#sql2-704-271'. See
http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html
for how to resolve the issue.

Database changed
MariaDB [dbmail]> drop table '#sql2-704-271'
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MariaDB server version for the right
syntax to use near ''#sql2-704-271'' at line 1
MariaDB [dbmail]> drop table #sql2-704-271;
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MariaDB server version for the right
syntax to use near '' at line 1
MariaDB [dbmail]> drop table \#sql2-704-271;
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MariaDB server version for the right
syntax to use near '-704-271' at line 1
MariaDB [dbmail]> drop table "\#sql2-704-271";
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MariaDB server version for the right
syntax to use near '"\#sql2-704-271"' at line 1
MariaDB [dbmail]> drop table '#sql2-704-271';
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MariaDB server version for the right
syntax to use near ''#sql2-704-271'' at line 1
MariaDB [dbmail]>


Am 23.01.2017 um 22:31 schrieb Reindl Harald:
ok, after delete the #xxx crap files it sarts at least

2017-01-23 22:29:46 7fbbd64cd940  InnoDB: Operating system error number
2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
2017-01-23 22:29:46 140444730972480 [ERROR] InnoDB: Could not find a
valid tablespace file for 'dbmail/#sql2-704-271'. See
http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html

for how to resolve the issue.
2017-01-23 22:29:46 140444730972480 [ERROR] InnoDB: Tablespace open
failed for '"dbmail"."#sql2-704-271"', ignored.

*how* to get rid of that error messages one for all?
why is there no internal cleanup to remove that referecnes for over 10
years not existing stuff from the global tablespace?

Am 23.01.2017 um 22:07 schrieb Reindl Harald:
Hi

that crap temp files never deleted are from years ago and a crash

until now it was enough to keep that tempfiles, with 10.1.x mariadb
don't start at all - *how to get rid of that crap*

the idiotic warnings are one thing but the segfauls now...
it's about a decade that it's not possible to cleanup such stuff

http://grokbase.com/t/mysql/mysql/136kx5qp1w/how-can-i-drop-a-table-that-is-named-logs-sql-ib203-and-appeared-after-mysql-crash





2017-01-23 22:01:27 139913013700928 [ERROR] InnoDB: Trying to do i/o to
a tablespace which exists without .ibd data file. i/o type 10, space id
545, page no 0, i/o length 8192 bytes
2017-01-23 22:01:27 7f40097b2940  InnoDB: Error: trying to access
tablespace 545 page no. 0,
InnoDB: but the tablespace does not exist or is just being dropped.
2017-01-23 22:01:27 139913013700928 [ERROR] InnoDB: tablespace id is 545
in the data dictionary but in file ./dbmail/#sql2-704-271.ibd it is 690!

2017-01-23 22:01:31 140380157278528 [ERROR] InnoDB: Trying to do i/o to
a tablespace which exists without .ibd data file. i/o type 10, space id
545, page no 0, i/o length 8192 bytes
2017-01-23 22:01:31 7faccd687940  InnoDB: Error: trying to access
tablespace 545 page no. 0,
InnoDB: but the tablespace does not exist or is just being dropped.
InnoDB: Error: Unable to read tablespace 545 page no 0 into the buffer
pool after 100 attempts
InnoDB: The most probable cause of this error may be that the table has
been corrupted.
InnoDB: You can try to fix this problem by using innodb_force_recovery.
InnoDB: Please see reference manual for more details.
InnoDB: Aborting...
2017-01-23 22:01:31 7faccd687940  InnoDB: Assertion failure in thread
140380157278528 in file buf0buf.cc line 3080
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB:
http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
170123 22:01:31 [ERROR] mysqld got signal 6 ;
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.

To report this bug, see https://mariadb.com/kb/en/reporting-bugs

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.

Server version: 10.1.21-MariaDB
key_buffer_size=33554432
read_buffer_size=131072
max_used_connections=0
max_threads=52
thread_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads =
53739 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x0
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 = 0x0 thread_stack 0x48400
/usr/libexec/mysqld(my_print_stacktrace+0x29)[0x560568d7a139]
/usr/libexec/mysqld(handle_fatal_signal+0x3ad)[0x5605689d780d]
/lib64/libpthread.so.0(+0x10c30)[0x7faccb39cc30]
/lib64/libc.so.6(gsignal+0x35)[0x7faccaffe765]
/lib64/libc.so.6(abort+0x16a)[0x7faccb00036a]
/usr/libexec/mysqld(+0x80a9b9)[0x560568cce9b9]
/usr/libexec/mysqld(+0x85426d)[0x560568d1826d]
/usr/libexec/mysqld(+0x8593ca)[0x560568d1d3ca]
/usr/libexec/mysqld(+0x8440b8)[0x560568d080b8]
/usr/libexec/mysqld(+0x7b8978)[0x560568c7c978]
/usr/libexec/mysqld(+0x702902)[0x560568bc6902]
/usr/libexec/mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x5d)[0x5605689d999d]



/usr/libexec/mysqld(+0x3dddfb)[0x5605688a1dfb]
/usr/libexec/mysqld(_Z11plugin_initPiPPci+0x782)[0x5605688a2c32]
/usr/libexec/mysqld(+0x353e75)[0x560568817e75]
/usr/libexec/mysqld(_Z11mysqld_mainiPPc+0x35f)[0x56056881c1ef]
/lib64/libc.so.6(__libc_start_main+0xf1)[0x7faccafea731]
/usr/libexec/mysqld(_start+0x29)[0x560568812eb9]
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


References