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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
34cedd8d
Commit
34cedd8d
authored
Nov 24, 2006
by
df@kahlann.erinye.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixes for mtr_unique.pl
parent
88ac15dd
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
3 deletions
+40
-3
mysql-test/lib/mtr_unique.pl
mysql-test/lib/mtr_unique.pl
+40
-3
No files found.
mysql-test/lib/mtr_unique.pl
View file @
34cedd8d
...
...
@@ -35,6 +35,13 @@ sub mtr_require_unique_id($$$) {
my
$min
=
shift
;
my
$max
=
shift
;
my
$ret
=
undef
;
my
$changed
=
0
;
my
$can_use_ps
=
`
ps -e | grep '^[ ]*$$ '
`;
if
(
eval
("
readlink '
$file
'
")
||
eval
("
readlink '
$file
.sem'
"))
{
die
'
lock file is a symbolic link
';
}
chmod
0777
,
"
$file
.sem
";
open
SEM
,
"
>
",
"
$file
.sem
"
or
die
"
can't write to
$file
.sem
";
...
...
@@ -43,6 +50,11 @@ sub mtr_require_unique_id($$$) {
open
FILE
,
"
>
",
$file
or
die
"
can't create
$file
";
close
FILE
;
}
if
(
eval
("
readlink '
$file
'
")
||
eval
("
readlink '
$file
.sem'
"))
{
die
'
lock file is a symbolic link
';
}
chmod
0777
,
$file
;
open
FILE
,
"
+<
",
$file
or
die
"
can't open
$file
";
select
undef
,
undef
,
undef
,
0.2
;
...
...
@@ -52,15 +64,30 @@ sub mtr_require_unique_id($$$) {
chomp
;
my
(
$id
,
$pid
)
=
split
/ /
;
$taken
{
$id
}
=
$pid
;
if
(
$can_use_ps
)
{
my
$res
=
`
ps -e | grep '^[ ]*
$pid
'
`;
if
(
!
$res
)
{
print
"
Ignoring slot
$id
used by missing process
$pid
.
\n
";
delete
$taken
{
$id
};
++
$changed
;
}
}
}
seek
FILE
,
0
,
2
;
for
(
my
$i
=
$min
;
$i
<=
$max
;
++
$i
)
{
if
(
!
exists
$taken
{
$i
})
{
print
FILE
"
$i
$$
\n
";
$ret
=
$i
;
$taken
{
$i
}
=
$$
;
++
$changed
;
last
;
}
}
if
(
$changed
)
{
seek
FILE
,
0
,
0
;
truncate
FILE
,
0
or
die
"
can't truncate
$file
";
for
my
$k
(
keys
%
taken
)
{
print
FILE
$k
.
'
'
.
$taken
{
$k
}
.
"
\n
";
}
}
close
FILE
;
flock
SEM
,
LOCK_UN
or
warn
"
can't unlock
$file
.sem
";
close
SEM
;
...
...
@@ -75,8 +102,9 @@ sub mtr_require_unique_id($$$) {
sub
mtr_require_unique_id_and_wait
($$$)
{
my
$ret
=
mtr_require_unique_id
(
$_
[
0
],
$_
[
1
],
$_
[
2
]);
while
(
!
defined
$ret
)
{
sleep
1
0
;
sleep
3
0
;
$ret
=
mtr_require_unique_id
(
$_
[
0
],
$_
[
1
],
$_
[
2
]);
print
"
Waiting for unique id to become available...
\n
"
unless
$ret
;
}
return
$ret
;
}
...
...
@@ -88,8 +116,17 @@ sub mtr_release_unique_id($$) {
my
$file
=
shift
;
my
$myid
=
shift
;
if
(
eval
("
readlink '
$file
'
")
||
eval
("
readlink '
$file
.sem'
"))
{
die
'
lock file is a symbolic link
';
}
open
SEM
,
"
>
",
"
$file
.sem
"
or
die
"
can't write to
$file
.sem
";
flock
SEM
,
LOCK_EX
or
die
"
can't lock
$file
.sem
";
if
(
eval
("
readlink '
$file
'
")
||
eval
("
readlink '
$file
.sem'
"))
{
die
'
lock file is a symbolic link
';
}
if
(
!
-
e
$file
)
{
open
FILE
,
"
>
",
$file
or
die
"
can't create
$file
";
close
FILE
;
...
...
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