Percona Server with XtraDB

Thread pool breaks -DWITH_PERFSCHEMA_ENGINE=OFF

Reported by Wei Tang on 2013-07-01
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Percona Server
Status tracked in 5.6
5.1
Undecided
Unassigned
5.5
Medium
Sergei Glushchenko
5.6
Medium
Sergei Glushchenko

Bug Description

It will crash if use these two parameters : -DWITHOUT_XXX_STORAGE_ENGINE=1 or -DWITH_XXX_STORAGE_ENGINE=1, like -DWITH_ARCHIVE_STORAGE_ENGINE=1 or -DWITHOUT_FEDERATED_STORAGE_ENGINE=1

[ 96%] Building CXX object sql/CMakeFiles/sql.dir/threadpool_common.cc.o
/root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc: In member function 'void Worker_thread_context::save()':
/root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc:79: error: 'struct PSI_none' has no member named 'get_thread'
/root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc: In member function 'void Worker_thread_context::restore()':
/root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc:86: error: 'struct PSI_none' has no member named 'set_thread'
/root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc: In function 'bool thread_attach(THD*)':
/root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc:103: error: 'struct PSI_none' has no member named 'set_thread'
/root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc: In function 'int threadpool_add_connection(THD*)':
/root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc:202: error: 'struct PSI_none' has no member named 'new_thread'
/root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc:202: error: 'key_thread_one_connection' was not declared in this scope
make[2]: *** [sql/CMakeFiles/sql.dir/threadpool_common.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2

Wei Tang (twtwwei) wrote :

Percona Compile Log

Alexey Kopytov (akopytov) wrote :

I guess you are building with -DWITH_PERFSCHEMA_STORAGE_ENGINE=0. In which case the thread pool code should not access PSI_server members, because PSI is declared with the PSI_none type. E.g. all such code should be wrapped into

#ifdef HAVE_PSI_INTERFACE

Thank you so much!
I remove the related parameter and it works.
Thanks again for your professional work.

On Mon, Jul 1, 2013 at 2:06 PM, Alexey Kopytov
<email address hidden>wrote:

> I guess you are building with -DWITH_PERFSCHEMA_STORAGE_ENGINE=0. In
> which case the thread pool code should not access PSI_server members,
> because PSI is declared with the PSI_none type. E.g. all such code
> should be wrapped into
>
> #ifdef HAVE_PSI_INTERFACE
>
> ** Also affects: percona-server/5.1
> Importance: Undecided
> Status: New
>
> ** Also affects: percona-server/5.5
> Importance: Undecided
> Status: New
>
> ** Also affects: percona-server/5.6
> Importance: Undecided
> Status: New
>
> ** Changed in: percona-server/5.1
> Status: New => Invalid
>
> ** Changed in: percona-server/5.5
> Status: New => Confirmed
>
> ** Changed in: percona-server/5.6
> Status: New => Confirmed
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1196383
>
> Title:
> crash during compiling from source code
>
> Status in Percona Server with XtraDB:
> Confirmed
> Status in Percona Server 5.1 series:
> Invalid
> Status in Percona Server 5.5 series:
> Confirmed
> Status in Percona Server 5.6 series:
> Confirmed
>
> Bug description:
> It will crash if use these two parameters :
> -DWITHOUT_XXX_STORAGE_ENGINE=1 or -DWITH_XXX_STORAGE_ENGINE=1, like
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 or
> -DWITHOUT_FEDERATED_STORAGE_ENGINE=1
>
>
> [ 96%] Building CXX object sql/CMakeFiles/sql.dir/threadpool_common.cc.o
> /root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc: In
> member function 'void Worker_thread_context::save()':
> /root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc:79:
> error: 'struct PSI_none' has no member named 'get_thread'
> /root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc: In
> member function 'void Worker_thread_context::restore()':
> /root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc:86:
> error: 'struct PSI_none' has no member named 'set_thread'
> /root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc: In
> function 'bool thread_attach(THD*)':
> /root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc:103:
> error: 'struct PSI_none' has no member named 'set_thread'
> /root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc: In
> function 'int threadpool_add_connection(THD*)':
> /root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc:202:
> error: 'struct PSI_none' has no member named 'new_thread'
> /root/src/Percona-Server-5.6.12-rc60.4/sql/threadpool_common.cc:202:
> error: 'key_thread_one_connection' was not declared in this scope
> make[2]: *** [sql/CMakeFiles/sql.dir/threadpool_common.cc.o] Error 1
> make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
> make: *** [all] Error 2
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/percona-server/+bug/1196383/+subscriptions
>

summary: - crash during compiling from source code
+ Thread pool breaks -DWITHOUT_PERFSCHEMA_ENGINE=1

it is better to use

#ifdef HAVE_PSI_THREAD_INTERFACE
  PSI_THREAD_CALL(set_thread)(thd->event_scheduler.m_psi);
#endif

instead of

#ifdef WITH_PERFSCHEMA_STORAGE_ENGINE
   if (PSI_server)
     PSI_server->set_thread(thd->event_scheduler.m_psi);
#endif

and so on

summary: - Thread pool breaks -DWITHOUT_PERFSCHEMA_ENGINE=1
+ Thread pool breaks -DWITH_PERFSCHEMA_ENGINE=OFF
tags: added: tp
tags: added: 56qual
Roel Van de Paar (roel11) wrote :

56qual removed - will be merged to GA

tags: removed: 56qual
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers