Assertion failure when no contents from the log are specified in any format string #1

Open
opened 2016-12-21 16:55:10 +00:00 by geoff · 2 comments
geoff commented 2016-12-21 16:55:10 +00:00 (Migrated from code.uplex.de)

Noticed by Nils with: -g raw and this configuration:

cformat=
rformat=fixed_string

That would have the effect of just emitting the fixed string for every raw transaction (possibly filtered by a query) -- obviously very much a corner case, but nevertheless varnishevent shouldn't crash.

#2  0x0000000000404e41 in assert_fail (func=0x411031 <__func__.6111> "main", file=0x41090a "varnishevent.c", line=930, 
    cond=0x410580 "!VSTAILQ_EMPTY(&rdr_rec_freelist) || (!VSB_EMPTY(config.cformat) && nonrecs_wanted[VSL_t_req]) || (!VSB_EMPTY(config.bformat) && nonrecs_wanted[VSL_t_bereq]) || (!VSB_EMPTY(config.rformat) && nonrecs_"..., err_e=<optimized out>) at varnishevent.c:569
#3  0x0000000000404615 in main (argc=<optimized out>, argv=<optimized out>) at varnishevent.c:927
Noticed by Nils with: ``-g raw`` and this configuration: ``` cformat= rformat=fixed_string ``` That would have the effect of just emitting the fixed string for every raw transaction (possibly filtered by a query) -- obviously very much a corner case, but nevertheless varnishevent shouldn't crash. ``` #2 0x0000000000404e41 in assert_fail (func=0x411031 <__func__.6111> "main", file=0x41090a "varnishevent.c", line=930, cond=0x410580 "!VSTAILQ_EMPTY(&rdr_rec_freelist) || (!VSB_EMPTY(config.cformat) && nonrecs_wanted[VSL_t_req]) || (!VSB_EMPTY(config.bformat) && nonrecs_wanted[VSL_t_bereq]) || (!VSB_EMPTY(config.rformat) && nonrecs_"..., err_e=<optimized out>) at varnishevent.c:569 #3 0x0000000000404615 in main (argc=<optimized out>, argv=<optimized out>) at varnishevent.c:927 ```
geoff commented 2016-12-21 16:58:04 +00:00 (Migrated from code.uplex.de)

This is where the reader thread is ensuring that its local free list for records is not empty before it enters the main loop, unless one of the output formats specified contents that don't require any records, such as only XIDs, the timestamp for raw transactions, and so forth. But evidently this case should be covered as well.

This is where the reader thread is ensuring that its local free list for records is not empty before it enters the main loop, unless one of the output formats specified contents that don't require any records, such as only XIDs, the timestamp for raw transactions, and so forth. But evidently this case should be covered as well.
geoff commented 2016-12-21 16:58:17 +00:00 (Migrated from code.uplex.de)

Title changed from Assertion-Failure when no contents from the log are specified in any format string to Assertion failure when no contents from the log are specified in any format string

Title changed from **Assertion-Failure when no contents from the log are specified in any format string** to **Assertion failure when no contents from the log are specified in any format string**
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
uplex-varnish/varnishevent#1
No description provided.