Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
varnishevent
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
varnishevent
Commits
e59bc293
Commit
e59bc293
authored
Apr 23, 2015
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
writer thread returns free lists before re-opening output, and after
a ready output timeout
parent
73d12385
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
11 deletions
+13
-11
writer.c
src/writer.c
+13
-11
No files found.
src/writer.c
View file @
e59bc293
...
...
@@ -172,17 +172,18 @@ wrt_write(tx_t *tx)
AZ
(
pthread_mutex_lock
(
&
reopen_lock
));
if
(
reopen
&&
fo
!=
stdout
)
{
wrt_return_freelist
();
if
(
fflush
(
fo
)
!=
0
)
LOG_Log
(
LOG_ERR
,
"Cannot flush to %s, DATA DISCARDED: %s"
,
config
.
output_file
,
strerror
(
errno
));
config
.
output_file
,
strerror
(
errno
));
if
(
fclose
(
fo
)
!=
0
)
{
LOG_Log
(
LOG_ALERT
,
"Cannot close %s, exiting: %s"
,
config
.
output_file
,
strerror
(
errno
));
config
.
output_file
,
strerror
(
errno
));
exit
(
EXIT_FAILURE
);
}
if
((
errnum
=
open_log
())
!=
0
)
{
LOG_Log
(
LOG_ALERT
,
"Cannot reopen %s, exiting: %s"
,
config
.
output_file
,
strerror
(
errnum
));
config
.
output_file
,
strerror
(
errnum
));
exit
(
EXIT_FAILURE
);
}
reopen
=
0
;
...
...
@@ -198,24 +199,25 @@ wrt_write(tx_t *tx)
to
=
config
.
output_timeout
;
if
((
errnum
=
select
(
fd
+
1
,
NULL
,
&
set
,
NULL
,
timeout
))
==
-
1
)
{
LOG_Log
(
LOG_ERR
,
"Error waiting for ready output %d (%s), DATA DISCARDED: %s"
,
errno
,
strerror
(
errno
),
VSB_data
(
os
));
"Error waiting for ready output %d (%s), DATA DISCARDED: %s"
,
errno
,
strerror
(
errno
),
VSB_data
(
os
));
errors
++
;
if
(
set_fdset
()
!=
0
)
{
LOG_Log
(
LOG_ALERT
,
"Cannot reset fd set after select() error, exiting: %s"
,
strerror
(
errno
));
"Cannot reset fd set after select() error, exiting: %s"
,
strerror
(
errno
));
exit
(
EXIT_FAILURE
);
}
}
else
if
(
errnum
==
0
)
{
wrt_return_freelist
();
LOG_Log
(
LOG_ERR
,
"Timeout waiting for ready output, DATA DISCARDED: %s"
,
VSB_data
(
os
));
"Timeout waiting for ready output, DATA DISCARDED: %s"
,
VSB_data
(
os
));
timeouts
++
;
if
(
set_fdset
()
!=
0
)
{
LOG_Log
(
LOG_ALERT
,
"Cannot reset fd set after timeout, exiting: %s"
,
strerror
(
errno
));
strerror
(
errno
));
exit
(
EXIT_FAILURE
);
}
}
...
...
@@ -225,7 +227,7 @@ wrt_write(tx_t *tx)
WRONG
(
"Wrong file descriptor found ready for output"
);
else
if
(
fprintf
(
fo
,
"%s"
,
VSB_data
(
os
))
<
0
)
{
LOG_Log
(
LOG_ERR
,
"Output error %d (%s), DATA DISCARDED: %s"
,
errno
,
strerror
(
errno
),
VSB_data
(
os
));
errno
,
strerror
(
errno
),
VSB_data
(
os
));
errors
++
;
}
else
{
...
...
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