Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
c1b233ec
Commit
c1b233ec
authored
Dec 11, 2002
by
monty@mashka.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed rare bug in show processlist which could cause core dump if a new thread was connecting.
parent
82a96692
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
5 deletions
+9
-5
sql/sql_show.cc
sql/sql_show.cc
+7
-5
sql/sql_udf.cc
sql/sql_udf.cc
+2
-0
No files found.
sql/sql_show.cc
View file @
c1b233ec
...
@@ -1025,6 +1025,7 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
...
@@ -1025,6 +1025,7 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
THD
*
tmp
;
THD
*
tmp
;
while
((
tmp
=
it
++
))
while
((
tmp
=
it
++
))
{
{
struct
st_my_thread_var
*
mysys_var
;
if
((
tmp
->
net
.
vio
||
tmp
->
system_thread
)
&&
if
((
tmp
->
net
.
vio
||
tmp
->
system_thread
)
&&
(
!
user
||
(
tmp
->
user
&&
!
strcmp
(
tmp
->
user
,
user
))))
(
!
user
||
(
tmp
->
user
&&
!
strcmp
(
tmp
->
user
,
user
))))
{
{
...
@@ -1034,12 +1035,13 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
...
@@ -1034,12 +1035,13 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
thd_info
->
user
=
thd
->
strdup
(
tmp
->
user
?
tmp
->
user
:
(
tmp
->
system_thread
?
thd_info
->
user
=
thd
->
strdup
(
tmp
->
user
?
tmp
->
user
:
(
tmp
->
system_thread
?
"system user"
:
"unauthenticated user"
));
"system user"
:
"unauthenticated user"
));
thd_info
->
host
=
thd
->
strdup
(
tmp
->
host
?
tmp
->
host
:
(
tmp
->
ip
?
tmp
->
ip
:
thd_info
->
host
=
thd
->
strdup
(
tmp
->
host
?
tmp
->
host
:
(
tmp
->
ip
?
tmp
->
ip
:
(
tmp
->
system_thread
?
"none"
:
"connecting host"
)));
(
tmp
->
system_thread
?
"none"
:
"connecting host"
)));
if
((
thd_info
->
db
=
tmp
->
db
))
// Safe test
if
((
thd_info
->
db
=
tmp
->
db
))
// Safe test
thd_info
->
db
=
thd
->
strdup
(
thd_info
->
db
);
thd_info
->
db
=
thd
->
strdup
(
thd_info
->
db
);
thd_info
->
command
=
(
int
)
tmp
->
command
;
thd_info
->
command
=
(
int
)
tmp
->
command
;
if
(
tmp
->
mysys_var
)
if
(
(
mysys_var
=
tmp
->
mysys_var
)
)
pthread_mutex_lock
(
&
tmp
->
mysys_var
->
mutex
);
pthread_mutex_lock
(
&
mysys_var
->
mutex
);
thd_info
->
proc_info
=
(
char
*
)
(
tmp
->
killed
?
"Killed"
:
0
);
thd_info
->
proc_info
=
(
char
*
)
(
tmp
->
killed
?
"Killed"
:
0
);
thd_info
->
state_info
=
(
char
*
)
(
tmp
->
locked
?
"Locked"
:
thd_info
->
state_info
=
(
char
*
)
(
tmp
->
locked
?
"Locked"
:
tmp
->
net
.
reading_or_writing
?
tmp
->
net
.
reading_or_writing
?
...
@@ -1051,8 +1053,8 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
...
@@ -1051,8 +1053,8 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
tmp
->
mysys_var
&&
tmp
->
mysys_var
&&
tmp
->
mysys_var
->
current_cond
?
tmp
->
mysys_var
->
current_cond
?
"Waiting on cond"
:
NullS
);
"Waiting on cond"
:
NullS
);
if
(
tmp
->
mysys_var
)
if
(
mysys_var
)
pthread_mutex_unlock
(
&
tmp
->
mysys_var
->
mutex
);
pthread_mutex_unlock
(
&
mysys_var
->
mutex
);
#if !defined(DONT_USE_THR_ALARM) && ! defined(SCO)
#if !defined(DONT_USE_THR_ALARM) && ! defined(SCO)
if
(
pthread_kill
(
tmp
->
real_id
,
0
))
if
(
pthread_kill
(
tmp
->
real_id
,
0
))
...
...
sql/sql_udf.cc
View file @
c1b233ec
...
@@ -204,6 +204,8 @@ void udf_init()
...
@@ -204,6 +204,8 @@ void udf_init()
new_thd
->
version
--
;
// Force close to free memory
new_thd
->
version
--
;
// Force close to free memory
close_thread_tables
(
new_thd
);
close_thread_tables
(
new_thd
);
delete
new_thd
;
delete
new_thd
;
/* Remember that we don't have a THD */
my_pthread_setspecific_ptr
(
THR_THD
,
0
);
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment