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
8349522b
Commit
8349522b
authored
Jul 09, 2010
by
karen.langford@oracle.com
Committed by
Karen Langford
Jul 09, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix bug #55039 Failing assertion: space_id > 0 in fil0fil.c.
parent
aff388cd
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
5 deletions
+25
-5
storage/innodb_plugin/dict/dict0crea.c
storage/innodb_plugin/dict/dict0crea.c
+15
-3
storage/innodb_plugin/os/os0file.c
storage/innodb_plugin/os/os0file.c
+10
-2
No files found.
storage/innodb_plugin/dict/dict0crea.c
View file @
8349522b
...
...
@@ -240,17 +240,29 @@ dict_build_table_def_step(
ibool
is_path
;
mtr_t
mtr
;
ulint
space
=
0
;
ibool
file_per_table
;
ut_ad
(
mutex_own
(
&
(
dict_sys
->
mutex
)));
table
=
node
->
table
;
dict_hdr_get_new_id
(
&
table
->
id
,
NULL
,
srv_file_per_table
?
&
space
:
NULL
);
/* Cache the global variable "srv_file_per_table" to
a local variable before using it. Please note
"srv_file_per_table" is not under dict_sys mutex
protection, and could be changed while executing
this function. So better to cache the current value
to a local variable, and all future reference to
"srv_file_per_table" should use this local variable. */
file_per_table
=
srv_file_per_table
;
dict_hdr_get_new_id
(
&
table
->
id
,
NULL
,
NULL
);
thr_get_trx
(
thr
)
->
table_id
=
table
->
id
;
if
(
srv_file_per_table
)
{
if
(
file_per_table
)
{
/* Get a new space id if srv_file_per_table is set */
dict_hdr_get_new_id
(
NULL
,
NULL
,
&
space
);
if
(
UNIV_UNLIKELY
(
space
==
ULINT_UNDEFINED
))
{
return
(
DB_ERROR
);
}
...
...
storage/innodb_plugin/os/os0file.c
View file @
8349522b
...
...
@@ -1339,7 +1339,11 @@ try_again:
/* When srv_file_per_table is on, file creation failure may not
be critical to the whole instance. Do not crash the server in
case of unknown errors. */
case of unknown errors.
Please note "srv_file_per_table" is a global variable with
no explicit synchronization protection. It could be
changed during this execution path. It might not have the
same value as the one when building the table definition */
if
(
srv_file_per_table
)
{
retry
=
os_file_handle_error_no_exit
(
name
,
create_mode
==
OS_FILE_CREATE
?
...
...
@@ -1426,7 +1430,11 @@ try_again:
/* When srv_file_per_table is on, file creation failure may not
be critical to the whole instance. Do not crash the server in
case of unknown errors. */
case of unknown errors.
Please note "srv_file_per_table" is a global variable with
no explicit synchronization protection. It could be
changed during this execution path. It might not have the
same value as the one when building the table definition */
if
(
srv_file_per_table
)
{
retry
=
os_file_handle_error_no_exit
(
name
,
create_mode
==
OS_FILE_CREATE
?
...
...
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