forked from rsyslog/rsyslog
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
10866 lines (10834 loc) · 604 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
------------------------------------------------------------------------------
Version 8.30.0 [v8-stable] 2017-10-10
------------------------------------------------------------------------------
Version 8.29.0 [v8-stable] 2017-08-08
- imptcp: add experimental parameter "multiline"
This enables a heuristic to support multiline messages on raw tcp syslog
connections.
- imptcp: framing-related error messages now also indicate remote peer
This is the case e.g. for oversize messages.
- imtcp: framing-related error messages now also indicate remote peer
This is the case e.g. for oversize messages.
- imptcp: add session statistics conunter
- session.opened
- session.openfailed
- session.closed
- imtcp: add ability to specify GnuTLS priority string
This permits to set cipher details on a very low level.
- impstats: add new ressoure counter "openfiles"
- pmnormalize: new parser module
Parser module that uses liblognorm to parse incoming messages.
- core/queue: provide informational messages on thread startup and shutdown
This provides better insight into operational state of rsyslog and is useful
in monitoring system health. Note that this causes the emission of messages
not previously seen. They are of syslog.informational priority.
- omfwd/udp: improve error reporting, depricate maxerrormessages parameter
Generally improved udp-related error messages (e.g. they now contain the
socket number, which makes it easier to related them to errors reported by
net.c subsystem).
We also depricated (removed) the "maxerrormessages" configuration parameters.
It provided some very rough rate-limiting capabilities and was introduced
before we had native rate-limiters. The default was that only the first 5
error messages were actually reported. For long-running instances, that
meant that in many cases no errors were ever reported. We now use the default
internal message rate limter, which works far better and ensures that also
long-running instances will be able to emit error messages after prolonged
runtime. In contrast, this also means that users will see more error
messages from rsyslog, but that should actually improve the end user
experience.
- core: add parameters debug.file and debug.whitelist
allows to generate debug log output only of specific files
Background information available at:
https://www.linkedin.com/pulse/improving-rsyslog-debug-output-jan-gerhards
- core/net.c: improve UDP socket creation error messages
- omfwd/udp: add "udp.sendbuf" parameter
- core: make rsyslog internal message rate-limiter configurable
New parameters "internalmsg.ratelimit.interval" and "internalmsg.ratelimit.burst"
have been added.
- omelasticsearch bugfixes and changed ES5 API support:
* avoid 404 during health check
Omleasticsearch responds differently to HTTP HEAD and GET requests and
returns correct state only on GET requests. This patch works around
that ES bug and always does a GET request even when technically a HEAD
request would be sufficient.
* avoid ES5 warnings while sending json
ES5 is generating warnings when sending json without the proper header:
$ curl -i -H "Content-Type: text/json" -XGET 'http://elasticsearch5:9200/' \
-d '{}\n'
HTTP/1.1 200 OK
Warning: 299 Elasticsearch-5.4.3-eed30a8 "Content type detection for rest
requests is deprecated. Specify the content type using the [Content-Type]
header." "Wed, 26 Jul 2017 14:33:28 GMT"
no issue on previous version.
Now, the header is set as application/json. It works for all versions
(tested on ES2 and ES5) we also handle the bulkmode where it should be
set to application/x-ndjson
closes https://github.com/rsyslog/rsyslog/issues/1546
* bugfix for memomry leak while writing error file
Thanks to William Dauchy for providing the patches
- imfile bugfix: wildcard detection issue on path wildcards
Wildcards mode was not properly detected when wildcards
were only used in a directory name on startup.
This caused imfile not to create a propper dynamic filewatch.
closes: https://github.com/rsyslog/rsyslog/issues/1672
- omfwd bugfix: always give reason for suspension
In many cases, no error message were emitted when omfwd
went into action suspension, which was confusing for end
users. This patch enables explicit error messages in all
those cases.
closes https://github.com/rsyslog/rsyslog/issues/782
- omfwd bugfix: configured compression level was not properly used
Thanks to Harshvardhan Shrivastava for the patch.
- imptcp bugfix: potential socket leak on session shutdown
imptcp first tries to remove a to-be-shut-down socket from the
epoll set, and errors out if that does not work. In that case, the
underlying socket will be leaked.
This patch refactors the code; most importantly, it is not necessary
to remove the socket from the epoll set, as this happens automatically
on close. As such, we simply remove that part of the code, which
also removes the root cause of the socket leak.
- omfwd/omudpspoof bugfix: switch udp client sockets to nonblocking mode
On very busy systems, we see "udp send error 11" inside the logs, and the requesting
action is being suspended (and later resumed). During the suspension period (in
default configuration), messages are lost. Error 11 translates to EAGAIN and the
cause of this problem is that the system is running out of UDP buffer space. This
can happen on very busy systems (with busy networks).
It is not an error per se. Doing a short wait will resolve the issue. The real root
cause of the issue is that omfwd uses a nonblocking socket for sending. If it were
blocking, the OS would block until the situation is resolved. The need for a
non-blocking sockets is a purely historical one. In the days of single-threaded
processing (pre v3), everything needed to be done by multiplexing, and blocking was
not permitted. Since then, the engine has dramatically changed. Actions now run on
their own thread(s). As such, there is no longer a hard need to use non-blocking i/o
for sending data. Many other output plugins also do blocking wait (e.g. omelasticsearch).
As such, the real root cause of the trouble is unnecessarily using non-blocking mode,
and consequently the right solution is to change that.
Note that using blocking i/o might change some timeing inside rsyslog, especially
during shutdown. So theoretical there is regression potential in that area. However,
the core is designed to handle that situation (e.g. there is special shutdown code to
handle the blocking case), so this does not stand against the "proper" solution.
This patch applies the change on the rsyslog core level, within net.c. The only
users of the changed functionality are omfwd and omudpspoof. Imudp is unaffected as
it requests server sockets.
Note that according to the sendto() man page, there is a second cause for the EAGAIN
error, this is when the system temporarily runs out of emphermeral ports. It is not
100% clear if this can also happen in the blocking case. However, if so, we can argue
this is a case where we really want the default retry logic. So for the time being,
it is appropriate to not handle EAGAIN in a special case any longer.
closes https://github.com/rsyslog/rsyslog/issues/1665
- imklog: fix permitnonkernelfacility not working
- impstats bugfix: impstats does not handle HUP
If the parameter "log.file" is specified, impstats writes its own
log file. However, HUP is not handled for this file, which makes
the functionality unusable with log rotation. It is also counter-
intuitive for users.
This patch enables correct HUP processing. As a sideline, it also
introduces a generic HUP processing framework for non-action type
of loadable modules.
closes https://github.com/rsyslog/rsyslog/issues/1662
closes https://github.com/rsyslog/rsyslog/issues/1663
- core bugfix: segfault after configuration errors
- core/queue bugfixes:
* Fix behaviour of PersistStateInterval
If PersistStateInterval=1, then each log line read should cause the state file
to be updated, but this was not happening because nRecords was being post-increment.
Thanks to Anthony Howe for the patch.
* potential problem during deserialization
if queue object deserialization fails, invalid memory blocks might be
free'ed.
For more information see https://github.com/rsyslog/rsyslog/pull/1647
Thanks to Derek Smith for the patch.
- core bugfix: messsage garbled after message modification
The MsgDup() function will return a garbled message object under these
conditions: The message was originally created with message length equal or
larger to CONF_RAWMSG_BUFSIZE. This makes rsyslog store the message in
dynamically allocated buffer space. Then, a component reduces the message
size to a size lower than CONGF_RAWMSG_BUFSIZE. A frequent sample is the
parser removing a known-bad LF at the end of the messages. Then, MsgDup is
executed. It checks the message size and finds that it is below
CONF_RAWMSG_BUFSIZE, which make it copy the msg object internal buffer
instead of the dynamically allocated one. That buffer was not written to in
the first place, so unitialized data is copied. Note that no segfault can
happen, as the copied location was properly allocated, just not used in
this processing flow. In the end result, the new message object contains
garbage data. Whenever the new object is used (e.g. in a async ruleset or
action) that garbage will be used. Whenever the old object is accessed,
correct data will be used. Both types of access can happen inside the
same processing flow, which makes the problem appear to be random.
closes https://github.com/rsyslog/rsyslog/issues/1658
- lmsig_ksi: removed pre-KSI_LS12 components
As of GuardTime, the provider, these no longer work due to backend
changes. The lmsig_ksi_ls12 module shall be used instead. This is
available since 8.27.0.
- testbench bugfix: hang in tests if omstdout is not present
Many tests depend on omstdout. Given the fact that omstdout
is really only useful for the testbench (at least that's the intent),
we now require --enable-omstdout if --enable-testbench is given.
The alternative would have been to disable all those tests that
need it, which would have lead to considerable less testbench
coverage.
closes https://github.com/rsyslog/rsyslog/issues/1649
------------------------------------------------------------------------------
Version 8.28.0 [v8-stable] 2017-06-27
- NEW BUILD REQUIREMENT: librelp 1.2.14 (to build relp components)
This was necessary because imrelp requires an API introduced in 1.2.14.
- omfwd: add parameter "tcp_frameDelimiter"
- omkafka: large refactor of kafka subsystem
This offers improvements and greatly increases reliablity.
Closes https://github.com/rsyslog/rsyslog/issues/1559
Closes https://github.com/rsyslog/rsyslog/issues/1584
Closes https://github.com/rsyslog/rsyslog/issues/1515
Closes https://github.com/rsyslog/rsyslog/issues/1052
May fix https://github.com/rsyslog/rsyslog/issues/1230
- imfile: improved handling of atomically renamed file (w/ wildcards)
if a file is atomically renamed, the state file is also being renamed,
so processing continues as if the original name were kept.
see also: https://github.com/rsyslog/rsyslog/issues/1417
- imfile: add capability to truncate oversize messages or split into multiple
also in this case an error message is emitted. Both of these actions are
configurable. This also solves memory issues when an endregex does not
match for prolonged time. In that case, large parts of the file were
previously buffered, which could cause big problems in case e.g. the
endregex was simply wrong and never matched. For the later, see also
https://github.com/rsyslog/rsyslog/issues/1552
- mmdblookup
* upgraded from "contrib" to "fully supported" state
* refactored and simplified code
* added ability to specify custom names for extracted fields
* added ability to spehttp://www.landesrecht-bw.de/jportal/portal/t/6el/page/bsbawueprod.psml/action/portlets.jw.MainAction?p1=0&eventSubmit_doNavigate=searchInSubtreeTOC&showdoccase=1&doc.hl=0&doc.id=jlr-UmwVwGBWrahmen&doc.part=R&toc.poskey=#focuspointcify container name for extracted fields
* bugfix: fixed multiple memory leaks
- imptcp: add new parameter "flowControl"
- imrelp: add "maxDataSize" config parameter
Thanks to Nathan Brown for the patch.
- multiple modules: gtls: improve error if certificate file can't be opened
- omsnare: allow different tab escapes
Thanks to Shane P. Lawrence for the patch.
- omelasticsearch: converted to use libfastjson instead of json-c
json-c was used for historical purposes, and it's source included
within the rsyslog source tree. We now use libfastjson inside all
components.
- imjournal: _PID fallback
* added fallback for _PID proprety when SYSLOG_PID is not available
* introduced new option "usepid" which sets which property should
rsyslog use, it has 3 states system|syslog|both, default is both
* deprecated "usepidfromsystem" option, still can be used
and override the "usepid"
* it is possible to revert previous default with usepid="syslog"
Thanks to Radovan Sroka for the patch
- multiple modules: add better error messages when regcomp is failing
- omhiredis: fix build warnings
Thanks to Brian Knox for the fix.
- imfile bugfix: files mv-ed in into directory were not handled
Thanks to Zachary M. Zhao for the patch.
see also https://github.com/rsyslog/rsyslog/issues/1588
- omprog bugfix: execve() incorrectly called
this caused failures on some but not all platforms
Thanks to 張君天(Chun-Tien Chang) and Matthew Seaman for the patch.
- imfile bugfix: multiline timeout did not work if state file exists
The timeout feature for multiline reads does not correctly work for
files for which a state file existed. This is usually the case for files
that had been processed by a previous run and that still exist on the
new start. For all other files, especially those monitored by a
wildcard and newly created after the rsyslog start, timeout worked as
expected.
closes https://github.com/rsyslog/rsyslog/issues/1445
- lmsig_ksi-ls12 bugfix: build problems on some platforms
- core bugfix: invalid object type assertion
This lead to aborts due to failing assertion. Note that this could only
happen during debugging runs which includes runtime instrumentation,
something that never should be done in a stable production build.
So this did not affect ordinary users, only developers in with
deep debugging settings.
- regression fix: local hostname was not always detected properly...
... on early start (w/o network). Introduced in 8.27.0.
Thanks to github user jvymazal for the patch and whissi for
reporting and helping with the analysis.
- bugfix: format security issues in zmq3 modules
see also: https://github.com/rsyslog/rsyslog/pull/1565
Thanks to Thomas D. (whissi) for the patch.
- bugfix build system: add libksi only to those binaries that need it
Thanks to Allan Park for the patch.
- bugfix KSI ls12 components: invalid tree height calculation
Thanks to Allan Park for the patch.
- testbench/CI enhancements
* re-enable and add kafka tests
Kafka tests were disabled in 8.27.0 (a regression from imkafka).
* better testbench coverage for mmdblookup
* lmsig_ksi-ls12 is now being built at least on Centos7
------------------------------------------------------------------------------
Version 8.27.0 [v8-stable] 2017-05-16
- imkafka: add module
- imptcp enhancements:
* optionally emit an error message if incoming messages are truncated
* optionally emit connection tracking message (on connection create and
close)
* add "maxFrameSize" parameter to specify the maximum size permitted
in octet-counted mode
* add parameter "discardTruncatedMsg" to permit truncation of
oversize messages
* improve octect-counted mode detection: if the octet count is larger
then the set frame size (or overly large in general), it is now
assumed that octet-stuffing mode is used. This probably solves a
number of issues seen in real deployments.
- imtcp enhancements:
* add parameter "discardTruncatedMsg" to permit truncation of
oversize messages
* add "maxFrameSize" parameter to specify the maximum size permitted
in octet-counted mode
- imfile bugfix: "file not found error" repeatedly being reported
for configured non-existing file. In polling mode, this message
appeared once in each polling cycle, causing a potentially very large
amout of error messages. Note that they were usually emitted too
infrequently to trigger the error message rate limiter, albeit often
enough to be a major annoance.
- imfile: in inotify mode, add error message if configured file cannot
be found
- imfile: add parameter "fileNotFoundError" to optinally disable
"file not found" error messages
- core: replaced gethostbyname() with getaddrinfo() call
Gethostbyname() is generally considered obsolete, is not reentrant and
cannot really work with IPv6. Changed the only place in rsyslog where
this call remained.
Thanks to github user jvymazal for the patch
- omkafka: add "origin" field to stats output
See also https://github.com/rsyslog/rsyslog/issues/1508
Thanks to Yury Bushmelev for providing the patch.
- imuxsock: rate-limiting also uses process name
both for the actual limit procesing as well as warning messages emitted
see also https://github.com/rsyslog/rsyslog/pull/1520
Thanks to github user jvymazal for the patch
- Added new module: KSI log signing ver. 1.2 (lmsig_ksi_ls12)
- rsylsog base functionality now builds on osx (Mac)
Thanks to github user hdatma for his help in getting this done.
- build now works on solaris again
- imfile: fix cross-platform build issue
see also https://github.com/rsyslog/rsyslog/issues/1494
Thanks to Felix Janda for bug report and solution suggestion.
- bugfix core: segfault when no parser could parse message
This could happen if the default parser chain was changed and the
RFC3164 parser was not included. Never seen in practice, just by
experimenting in lab.
- bugfix core: rate-limit internal messages when going to external log system
Rate-limiting was only applied to messages processed internally.
While the external logging system probably also applies rate-limiting,
it would be preferrable that rsyslog applies the same policies on
internal messages, no matter where they go. This is now the case.
- bugfix core: when obtaining local hostname, a NULL pointer could be
accessed. This depends on many factors, among them that no local host
name is configured in rsyslog.conf AND the local system configuration
also is set to an empty hostname.
Thanks to github user jvymazal for the patch.
- bugfix core: on shutdown, stderr was written to, even if already closed
This lead to messages going to whatever was associated with file
descriptor two.
Thanks to Allan Park for the patch.
- bugfix core: perform MainqObj destruction only when not NULL already
This affects the config object; in theory may lead to misadressing during
config parsing.
Thanks to github user jvymazal for the patch
- bugfix core: memory leak when internal messages not processed internally
In this case, the message object is not destructed, resulting in
a memory leak. Usually, this is no problem due to the low number
of internal message, but it can become an issue if a large number
of messages is emitted.
closes https://github.com/rsyslog/rsyslog/issues/1548
closes https://github.com/rsyslog/rsyslog/issues/1531
- bugfix imptcp: potential overflow in octet count computation
when a very large octet count was specified, the counter could overflow
------------------------------------------------------------------------------
Version 8.26.0 [v8-stable] 2017-04-04
- NEW BUILD REQUIREMENT: liblognorm 2.0.3 is required for mmnormalize
If mmnormalize is not built, the build requirements are unchanged.
The new version is necessary because it contains an enhanced API for a
new mmnormalize feature.
- enable internal error messages at all times
This is an important change to the design of the rsyslog core internal
error message system. Previous code could deadlock if internal messages were
issued inside queue processing code, which effectively limited error-reporting
capabilities. This change makes it possible to call error messages from any
part of the code at any time.
As a side-effect, this also fixes an issue where rsyslog could deadlock if
imuxsock submited messages to the system log socket when that socket blocked.
This was a rare race, albeit consistently reproducible and also seen in
practice. The work-around for this issue was to set
global(processInternalMessages="on")
in rsyslog.conf. With the new code, this race can never happen again. The new
code also sets stage for emitting better error messages, especially in places
where we previously refrained from doing so and messages went only to the
debug log. For some file output and queue subsytem related messages, this
is already done, but there is still further work required.
Note well: this is a redesign of an important core component. While intensely
tested, this may still have some larger regeression potential than usual code
changes.
- core: added logging name of source of rate-limited messages
This adds the name to the rate-limiting message itself, making it easier
to identify the actual source of "spam" messages.
Thanks to github user jvymazal for the patch.
- omfwd: omfwd: add support for network namespaces
Thanks to Bastian Stender for the patch.
- imrelp: honor input name if provided when submitting to impstats
Thanks to Jon Henry for the patch.
- imptcp: add ability to set owner/group/access perms for uds
Thanks to Nathan Brown for implementing this feature.
- mmnormalize: add ability to load a rulebase from action() parameter
This is especially useful for small rulebases, as it avoids having
a separate rulebase file.
closes https://github.com/rsyslog/rsyslog/issues/625
- pmrfc3164 improvements
- permit to ignore leading space in MSG
- permit to use at-sign in host names
- permit to require tag to end in colon
Thanks to github user bdolez for the contribution
- add new global parameter "umask"
This is equivalent to "$umask" and permits to convert that construct
to new-style config format.
closes https://github.com/rsyslog/rsyslog/issues/1382
- core: make use of -T command line option more secure
When the -T option is used, a chdir is now done right after chroot. It must
be noted, though, that -T is a testing option and has no intent to provide
real security. So this change does not mean it actually is sufficiently
secure.
Thanks to github user jvymazal for the patch.
- omfile: add error if both file and dynafile are set
- bugfix: build problem on MacOS (not a supported platform)
Thanks to FX Coudert for the fix.
- regression fix: in 8.25, str2num() returned error on empty string
past behaviour was to return 0 in this case; past behavior was reinstanciated
Thanks to github user jvymazal for the patch.
- bugfix omsnmp: improper handling of new-style configuration parameters
Thanks to Radovan Sroka for the patch.
- bugfix: rsyslog identifies itself as "liblogging-stdlog" in internal messages
This occured when liblogging-stdlog was used, and was used by default (without
explicit configuration). This is a regression of the new default, which does
not correctly call stdlog_open() in the default case.
closes https://github.com/rsyslog/rsyslog/issues/1442
- bugfix imfile: wrong files were monitored when using multiple imfile inputs
The bug was introduced by the changes for the multilevel wildcard feature
in 8.25.0. We have to handle FileCreate events different if the directory
watch is configured or added dynamically.
closes https://github.com/rsyslog/rsyslog/issues/1452
- bugfix: setting net.aclResolveHostname/net.acladdhostnameonfail segfaults
When compiling using hardned gcc (gentoo), specifying net.aclResolveHostname
or net.acladdhostnameonfail results in rsyslogd segfaulting on startup.
Thanks to Radovan Sroka for the patch.
- bugfix: immark emitted error messages with text "imuxsock"
Thanks to Chris Pilkington for the patch.
- bugfix tcpflood: build failed if RELP was disabled
- fix gcc6 compiler warnings
This also fixes a small bug with incorrectly working deprecated -u
command line option.
Thanks to Nikola Pajkovsky for the patch.
- the output module array passing interface has been removed
It wasn't functional since the v8 update, and the only user was omoracle,
which is a contributed module that is no longer maintained. So we
removed that interface to streamline the code. Should it ever be needed
again, we could check the 8.25 code base. Note, though, that that code
still needs to be adjusted to the v8 engine.
- testbench:
* tcpflood now automatically enters silent mode during Travis CI testing
This reduces testbench output, which is limited under Travis.
* the libqpid-proton package is no longer available for Ubuntu trusty. As
such, we disabled its use in Travis on this platform. Right now, this
means omaqp1 module is no longer tested on trusty.
------------------------------------------------------------------------------
Version 8.25.0 [v8-stable] 2017-02-21
- imfile: add support for wildcards in directory names
This now permits to monitor newly created directories without altering
the configuration.
- add new global option "parser.PermitSlashInProgramname"
- mmdblookup: fix build issues, code cleanup
Thanks to Dan Molik for the patch.
- improved debug output for queue corruption cases
- an error message is now displayed when a directory owner cannot be set
This mostly happens with omfile and dynafils. The new messages
facilitates troubleshooting.
- rainerscript:
* add new function ipv42num
* add new function num2ipv4
- bugfix: ratelimiter does not work correctly is time is set back
Thanks to github user hese10 for the patch.
see also https://github.com/rsyslog/rsyslog/issues/1354
- core: fix potential message loss in old-style transactional interface
This was experienced for example by omrelp. Could loose one message per
broken connection, iff that message did not make it to the unacked list.
- bugfix queue subsystem: queue corrupted if certain msg props are used
The core issues was in the msg object deserializer, which had the wrong
deserialization sequence. That in turn lead to queue corruption issues.
Corruption of disk queue (or disk part of DA queue) always happens if
the "json" property (message variables) is present and "structured-data"
property is also present. This causes rsyslog to serialize to the
queue in wrong property sequence, which will lead to error -2308 on
deserialization.
Seems to be a long-standing bug. Depending on version used, some or
all messages in disk queue may be lost.
closes https://github.com/rsyslog/rsyslog/issues/1404
- bugfix imjournal: fixed situation when time goes backwards
This is resolving the situation when system is after reboot and
boot_id doesn't match so cursor pointing into "future".
Usually sd_journal_next jump to head of journal due to journal
aproximation, but when system time goes backwards and cursor is
still invalid, rsyslog stops logging.
We use sd_journal_get_cursor to validate our cursor.
When cursor is invalid we are trying to jump to the head of journal
This problem with time should not affect persistent journal,
but if cursor has been intentionally compromised it could stop
logging even with persistent journal.
- bugfix: bFlushOnTxEnd == 0 not honored when writing w/o async writer
If bFlushOnTXEnd is set, we need to flush on transaction end - in
any case. It is not relevant if this is using background writes
(which then become pretty slow) or not. And, similarly, no flush
happens when it is not set.
see also https://github.com/rsyslog/rsyslog/issues/1297
- bugfix core: str2num mishandling empty strings
If str2num() receives an empty string, misadressing happens.
This theoretically can lead to a segfault if a RainerScript function
is used inside the configuration which calls code that could trigger
this bug.
closes https://github.com/rsyslog/rsyslog/issues/1412
- bugfix rainerscript: set/unset statement do not check variable name validity
Only JSON-based variables can be use with set and unset. Unfortunately,
this restriction is not checked. If an invalid variable is given
(e.g. $invalid), this is not detected upon config processing on
startup. During execution phase, this can lead to a segfault, a
memory leak or other types of problems.
Thanks to github user mostolog for reporting and helping to analyze
this issue.
see also https://github.com/rsyslog/rsyslog/issues/1376
closes https://github.com/rsyslog/rsyslog/issues/1377
- bugfix mmrm1stspace: last character of rawmsg property was doubled
- bugfix: rsyslog loops on freebsd when trying to write /dev/console
Rsyslog 8.23.0 loops on FreeBSD when trying to access a (now revoked)
/dev/console file descriptor, as per Alexandre's original bug report [1].
The original patch fixes the problem when tryTTYRecover() sees errno 6 ENXIO.
Running FreeBSD 10-stable here and getting errno 5 EIO, same as Xavier gets
in his 2016 bug report [2].
New patch [3] includes errno 5 to tryTTYRecover() in runtime/stream.c and
fixes the problem for me, on multiple machines.
[1] https://github.com/rsyslog/rsyslog/issues/371
[2] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211033
[3] https://bz-attachments.freebsd.org/attachment.cgi?id=178452
closes https://github.com/rsyslog/rsyslog/issues/1351
Thanks to Damien Fleuriot for the patch.
- bugfix imtcp: fix very small (cosmetic) memory leak
For each listener, the name of an assigned ruleset is not freed. This
is cosmetic, because it is a very small static leak AND it needs to
be kept until end of run anyways (and at end of run the OS frees it).
However, the leak breaks memleak checks in the testbench.
- fix build issues on some platforms (detected on newer Fedora)
------------------------------------------------------------------------------
Version 8.24.0 [v8-stable] 2017-01-10
- rsyslog now builds on AIX
see also: https://github.com/rsyslog/rsyslog/pull/1247
Thanks to github user purnimam1 and the team at IBM
Note: the rsyslog project has no AIX platform to ensure that future versions
will remain buildable on AIX. If you would like to contribute ressources,
please contact the rsyslog team.
- mmdblookup: new maxminddb lookup message modify plugin
Thanks to 饶琛琳 (github user chenryn) for the contribution
- mmrm1stspace: new module; removes first space in MSG if present
- KSI signature provider: file permissions can now be specified
This happens via parameters equal to those used by omfile itself.
Note that KSI files can have different permissions/owner than the log
files themself.
Thanks to Allan Park for the patch.
- omzmq: new features
Thanks to Brian Knox for the patch.
- change: when the hostname is empty, we now use "localhost-empty-hostname"
In 8.23.0, "localhost" was used in this case, but that could be misleading.
The new name makes the error condition (gethostname() should always return
a non-empty name) more obvious.
- omelasticsearch: remove "asyncrepl" config parameter
The _bulk index endpoint on ElasticSearch 5.0 no longer
ignores the ?replication=async query parameter. It was deprecated
since 1.5 and silently ignored in 2.x but passing it to a 5.x
instance breaks omeleastisearch with a 400 response.
closes https://github.com/rsyslog/rsyslog/issues/1250
- omfwd: Add support for bind-to-device (see below on same for imudp)
- imudp: Add support for bind-to-device
Add support for bind-to-device option to omfwd and imudp modules.
Configured using device="name". Only new syntax format is supported.
e.g.,
input(type="imudp" port=["10514"] device="eth0" name="udp")
Action(type="omfwd" Target="192.168.1.23" Port="10514" Device="eth0")
see also https://github.com/rsyslog/rsyslog/pull/1261
Thanks to David Ahern for the patch.
- imudp: limit rcvbufsize parameter to max 1GiB
- rainerscript: implement new "call_indirect" statement
- bugfix imjournal: make state file handling more robust
There is a bug in rsyslog which is caused by not very atomic writes of
imjournal statefile. It's hardly reproducible but there is a way.
fscanf error appears only when rsyslog reads an empty statefile which
causes that imjournal is stopped so no logging from journal is
performed. When the statefile contains random bytes error appears
again but from journal and imjournal is stopped too.
In this patch Rsyslog writes imjournal statefile more atomically and
secure. Reading the statefile is more robust and doesn't affect
imjournal module so when corrupted statefile is read imjournal
ignores statefile, continues with logging and it doesn't stop. Logger
can be used as a test if it's logging or not.
Patch introduces a new option with both old and new config format
"IgnoreNonValidStateFile" which is "on" by default and it can turn
off ignorance of non valid statefile.
Thanks to github user tomassykora for the patch.
- bugfix core: lookup table reload was not properly integrated
The opcode was not handled, what lead to misleading messages
in debug log. Since we run debug builds more strictly, it also
causes an assertion to trigger, thus aborting the test
- bugfix core: potential dealock on shutdown
could happen when rsyslog was started and quickly shut down OR when
co-incidently a new thread was spawend "with bad timing" around the time
of shutdown.
See also https://github.com/rsyslog/rsyslog/pull/1274
Thanks to github user tomassykora for the final patch and Rado Sroka for
the analysis and an initial patch.
- bugfix ommongodb: did not work in v8 due to invalid indirection
Thanks to Benoit Dolez for the patch.
- bugfix ommongodb: fix tryResume handling
To make tryResume working, the connection to mongodb need to be closed.
Thus close it on "insert error".
Thanks to Benoit Dolez for the patch.
- bugfix omfwd: retry processing was not done correctly, could stall
see also https://github.com/rsyslog/rsyslog/pull/1261
Thanks to David Ahern for the patch.
- bugfix imuxsock: segfault non shutdown when $OmitLocalLogging is on
Imuxsock tries to close socket on index 0 which ends with segfault.
Thanks to Tomas Sykora for the patch.
- testbench:
* empty-hostname test did not work correctly
* improve debugging by better output
------------------------------------------------------------------------------
Version 8.23.0 [v8-stable] 2016-11-15
- NEW BUILD REQUIREMENT: libfastjson 0.99.3
This was introduced in 8.20.0 as a suggestion and has now become a hard
requirement. See 8.20.0 ChangeLog entry for more details.
- KSI signatures: removed SHA2-224 hash algorithm
This is considered insecure and no longer supported by the underlying
KSI library. If still used within a configuration, a descriptive error
message is emitted during config processing.
Thanks to Henri Lakk for the initial patch.
- imfile: new timeout feature for multi-line reads
When using startmsg.regex, messages are held until the next one is written.
We now provide a "readTimeout" parameter family (see doc) to timeout such
reads and ensure messages are not held for a very long time.
see also https://github.com/rsyslog/rsyslog/issues/1133
- omfile: improve robustness against network file system failures
in case of failure, a close and re-open is tried, which often solves the
issue (and wasn't handle before this patch).
see also https://github.com/rsyslog/rsyslog/pull/1161
Thanks to github user hese10 for the patch.
- pmaixforwardedfrom: support for AIX syslogd -s option
if syslog in AIX started with "-s" option, AIX syslog adds only "From "
instead of "Message forwarded from ". With this patch, both are now
detected.
Thanks to github user patelritesh for the patch.
- omelasticsearch: add ability to specify max http request size
This permits to keep batches below ES-configured limits.
Thanks to github user barakshechter for the patch.
- omelasticsearch: high availability addressing of ElasticSearch cluster
allow to specify an array of servers, which is tried until a working
one is found (and given up only if none works).
Thanks to github user barakshechter for the patch.
- omelasticsearch: make compatible with ElasticSearch 2.x and 5.x
fixes omelasticsearch logs response from ElasticSearch 5.0 _bulk
endpoint as error
See also https://github.com/rsyslog/rsyslog/pull/1253
Thanks to Christian Rodemeyer for the patch.
- omhiredis: add dynakey attribute.
If set to on, this causes omhiredis to treat the key attribute as the
name of a template so that you can build a dynamic redis queue name
or list key.
see also: https://github.com/rsyslog/rsyslog/pull/1218
Thanks to github user bobthemighty for the patch
- omtcl: new contributed module
see also https://github.com/rsyslog/rsyslog/pull/1041
Please note: contributed modules are not directly supported by the
project. You might want to contact the author for questions.
Thanks to Francisco Castro for contributing it.
- RainerScript: provide a capability to set environment variables
via 'global(environment="var=val")' config statement.
This is most importantly for things like HTTP_PROXY.
see also https://github.com/rsyslog/rsyslog/issues/1209
- lookup tables: improved error checking
Thanks to Janmejay Singh for the patch.
- queue subsystem: add configuration parameter "queue.samplinginterval"
Supports sampling of messages (as often used in data transmission).
Thanks to Zachary M. Zhao for the patch.
- bugfix core: errmsg.LogError now switches to dfltErrLogger just before shutdown
Thanks to Janmejay Singh for the patches.
- bugfix core: fixed un-freed memory in non-transactional action using string-passing
closes https://github.com/rsyslog/rsyslog/issues/968
Thanks to Janmejay Singh for the patches.
- rsgtutil: option to specify KSI publications file certificate constraints
see also https://github.com/rsyslog/rsyslog/issues/1207
- omprog: bugfixes and enhancements
- omprog resource leak fix (fd leak)
- omprog got ability to force-kill process if it doesn't die in 5 seconds
(linux specific)
- child-process lifecycle debugging aid (in form of logs) (mainLoop and
omprog cleanup both log pid at child-death, mainLoop reaping is now
visible to user, as opposed to being a mystery, because omprog didn't
seem to anticipate it in terms of code)
Thanks to Janmejay Singh for the patches.
see also https://github.com/rsyslog/rsyslog/pull/1155
- bugfix imfile: ReopenOnTruncate processing, file open processing
This fixes
* ReopenOnTrucate was only honored when a state file existed
see https://github.com/rsyslog/rsyslog/issues/1090
* open processing could run into a loop
see https://github.com/rsyslog/rsyslog/issues/1174
This is done via refactoring the open file handling, which provides
overall cleaner and easier-to-follow code.
Thanks to Owen Smith for analyzing the problem and providing a
prototype PR which greatly helped towards the final solution.
- bugfix omlibdbi: libdbi-driver-sqlite3/2 requires to provide a path to
database split into two strings:
* absolute path, where the database file sits
* database filename itself.
This was previously not done.
Thanks to github user aleek for the patch.
- bugfix RainerScript: issue in prifilt() function
Initialize func-data(and to-be-freed flag) correctly for prifilt
function-node
Thanks to Janmejay Singh for the patch.
- bugfix omrelp: invalid module name imrelp was used in some error messages
Thanks to Chris Pilkington for the patch.
- bugfix core: abort when persisting object state
This causes a segfault. It happens whenever an object state larger
than 4095 byte is persisted. Then, incorrectly a try to rollover to
a new state file is tried, which will lead to a division by zero
as the necessary variables for this operation are not set because we
are NOT in circular mode.
This problem can happen wherever state files are written. It has been
experienced with imfile and queue files.
Many thanks to github user mostolog for his help in reproducing the issue,
which was very important to finally nail down this long-standing bug.
closes https://github.com/rsyslog/rsyslog/issues/1239
closes https://github.com/rsyslog/rsyslog/issues/1162
closes https://github.com/rsyslog/rsyslog/issues/1074
- bugfix: segfault if hostname is unset on system
happens when gethostname() returns empty string. This will cause
the createon of the localhostname prop_t to fail, which in turn
leads to a NULL pointer dereference when emitting local messages.
As we emit a startup message by default, this had usually lead
to a segfault on startup.
Thanks to Erik Potter and github user mostolog for their help
in analyzing this problem.
closes https://github.com/rsyslog/rsyslog/issues/1040
closes https://github.com/rsyslog/rsyslog/issues/335
- bugfix external module perl skeleton: did not work properly
Thanks to github user Igorjan666 for the patch.
- bugfix build system: Fix detection of pthread_setschedparam() on platforms
such as FreeBSD
see also https://github.com/rsyslog/rsyslog/pull/1147
Thanks to Matthew Seaman for the patch.
- bugfix omelasticsearch: modifies constant memory under some circumstances
Function computeBaseUrl may modify its serverParam parameter, but
this may contain the constant string "localhost". Depending on the
platform, this can lead to a segfault.
Noticed while working on compiler warnings, not seen in practice.
- "bugfix": theoretical queue file corruption when more than MAX_INT files
closes https://github.com/rsyslog/rsyslog/issues/1202
- bug fix/KSI: LOGSIG11 missing in the beginning of KSI log signature file
When logging with KSI is not working properly for whatever reason, an
empty .ksisig file is created (which by itself is not an issue). However,
later it looks like this file is re-used, but it is not checked whether it
already contains the magic LOGSIG11 in the beginning of the file. This leads
to a log signature file which has correct content but is missing the
LOGSIG11 magic in the beginning.
- bugfix template processor: missing escaping of backslash in json mode
Thanks to github user mostolog for providing the patch.
- build environment: --enable-debug now defaults to new "auto" mode
previously, DEBUG mode (and thus assert() macros) was disabled by default
and explicitly needed to be enabled by providing the --enable-debug
./configure switch. Now, a new --enable-debug=auto mode has been added
and made the default. It enables DEBUG mode if we build from git and only
disables it when a release build is done (from the release tarball). This
aims at better error checking during testbench runs and developer testing.
- testbench improvements
* improved testbench file generation tool
Thanks to Pascal Withopf for the patch.
* added some plumbing for extended tests which work by overriding OS APIs
* imfile ReopenOnTruncate option is now being tested
* the CI environment now runs most tests in debug mode, but some in
release mode to cover potential release-mode races
* template json option is now being tested
* object state persisting received a basic test
* added test for empty hostnames
* added tests for omprog
------------------------------------------------------------------------------
Version 8.22.0 [v8-stable] 2016-10-04
- ompgsql: add template support
Thanks to Radu Gheorghe for implementing this.
- generate somewhat better error message on config file syntax error
a common case (object at invalid location) has received it's own error
message; for the rest we still rely on the generic flex/bison handler
- bugfix:omhiredis reconnects after failure
previously it could loose messages under such conditions.
Thanks to Bob Gregory for the patch.
- general cleanup and code improvement
mostly guided by compiler warnings induced by newer opensuse builbot
environment
------------------------------------------------------------------------------
Version 8.21.0 [v8-stable] 2016-08-23
- CHANGE OF BEHAVIOUR:
by default, internal messages are no longer logged via the internal
bridge to rsyslog but via the syslog() API call [either directly or
via liblogging). For the typical single-rsyslogd-instance installation this
is mostly unnoticable (except for some additional latency). If multiple
instances are run, only the "main" (the one processing system log messages)
will see all messages. To return to the old behaviour, do either of those
two:
1) add in rsyslog.conf:
global(processInternalMessages="on")
2) export the environment variable RSYSLOG_DFLT_LOG_INTERNAL=1
This will set a new default - the value can still be overwritten via
rsyslog.conf (method 1). Note that the environment variable must be
set in your **startup script**.
For more information, please visit
http://www.rsyslog.com/rsyslog-error-reporting-improved/
- slightly improved TLS syslog error messages
- queue subsystem: improved robustness
The .qi file is now persisted whenever an existing queue file is fully
written and a new file is begun. This helps with rsyslog aborts, including
the common case where the OS issues kill -9 because of insufficiently
configured termination timout (this is an OS config error, but a frequent
one). Also, a situation where an orphaned empty file could be left in the
queue work directory has been fixed. We expect that this change causes
fewer permanent queue failures.
- bugfix: build failed on some platforms due to missing include files
------------------------------------------------------------------------------
Version 8.20.0 [v8-stable] 2016-07-12
- NEW BUILD REQUIREMENT: librelp, was 1.2.5, now is 1.2.12
This is only needed if --enable-relp is used. The new version is needed
to support the new timeout parameter in omrelp.
- NEW BUILD SUGGESTION: libfastjson 0.99.3
while not strictly necessary, previous versions of libfastjson have a bug
in unicode processing that can result in non US-ASCII characters to be
improperly encoded and may (very unlikely) also cause a segfault.
This version will become mandatory in rsyslog 8.23.0
- omrelp: add configurable connection timeout
Thanks to Nathan Brown for implementing this feature.
- pmrfc3164: add support for slashes in hostname
added parameter "permit.slashesinhostname" to support this, off by default
[Note that the RFC5424 always supported this, as 5424 is a different
standard]
- bugfix omfile: handle chown() failure correctly
If the file creation succeeds, but chown() failed, the file was
still writen, even if the user requested that this should be treated
as a failure case. This is corrected now.
Also, some refactoring was done to create better error messages.
- omfile now better conveys status of unwritable files back to core
- config files recursively including themselfes are now detected
and an error message is emitted in that case; Previously, this
misconfiguration resulted in rsyslog loop and abort during startup.
closes https://github.com/rsyslog/rsyslog/issues/1058
- refactored code to not emit compiler warnings in "strict mode"
We changed the compiler warning settings to be rather strict and cleaned up
the code to work without generating any warning messages.
This results in an overall even more improved code quality, which will now
also be enforced via our CI systems.
- bugfix: fix some issues with action CommitTransaction() handling
An action that returns an error from CommitTransaction() caused a
loop in rsyslog action processing. Similarly, retry processing was not
properly handled in regard to CommitTransaction().
This is a first shot at fixing the situation. It solves the
immediate problems, but does not implement the full desired
functionality (like error file).
see also https://github.com/rsyslog/rsyslog/issues/974
see also https://github.com/rsyslog/rsyslog/issues/500
- bugfix omqmqp1: connecting to the message bus fails on nonstandard port
Thanks to Ken Giusti for the patch.
see also: https://github.com/rsyslog/rsyslog/pull/1064
- testbench/CI enhancements
* new tests for RELP components
* new tests for core action processing and retry
* travis tests now also run against all unstable versions of supporting
libraries. This helps to track interdependency problems early.
* new tests for hostname parsing
* new tests for RainerScript comparisons
------------------------------------------------------------------------------
Version 8.19.0 [v8-stable] 2016-05-31
- NEW BUILD REQUIREMENT: autoconf-archive
- omelasticsearch: add option to permit unsigned certs (experimentally)
This adds plumbing as suggested by Joerg Heinemann and Radu Gheorghe,
but is otherwise untested. Chances are good it works. If you use it,
please let us know your experience and most importantly any bug
reports you may have.
closes https://github.com/rsyslog/rsyslog/issues/89
- imrelp: better error codes on unvailablity of TLS options
Most importantly, we will tell the user in clear words if specific TLS
options are not available due to too-old GnuTLS.
closes https://github.com/rsyslog/rsyslog/issues/1019
- default stack size for inputs has been explicitely set to 4MiB
for most platforms, this means a reduction from the default of 10MiB, hower
it may mean an increas for micro-libc's (some may have as low as 80KiB by
default).
- testbench: We are now using libfaketime instead of faketime command line
tool. Make sure you have installed the library and not just the binary!
- refactor stringbuf
* use only a single string buffer
... both for the internal representation as well as the C-String one.
The module originally tried to support embedded NUL characters, which
over time has prooven to be not necessary. Rsyslog always encodes
NUL into escape sequences.
Also, the dual buffers were used inconsistently, which could lead to
subtle bugs. With the single buffer, this does no longer happen and
we also get some improved performance (should be noticable)
and reduced memory use (a bit).
closes https://github.com/rsyslog/rsyslog/issues/1033
* removed no longer used code
* internal API changes to reflect new needs
* performance improvements
* miscellaneous minor cleanup
- fix: potential misadressing in template config processing
This could cause segfault on startup. Happens when template name shorter
than two chars and outname is not set. Once we are over startup, things
work reliably.
- bugfix omfile: async output file writing does not respect flushing
neither parameter flushInterval nor flushOnTXEnd="on" was respected.
closes https://github.com/rsyslog/rsyslog/issues/1054
- bugfix imfile: corrupted multi-line message when state data was persisted
see also https://github.com/rsyslog/rsyslog/issues/874
Thanks to Magnus Hyllander for the analysis and a patch suggestion.
- bugfix imfile: missing newline after first line of multiline message
see also https://github.com/rsyslog/rsyslog/issues/843
Thanks to Magnus Hyllander for the patch.
- bugfix: dynstats unusedMetricTtl bug
Thanks to Janmejay Singh for fixing this.
- bugfix build system: build was broken on SunOS
Thanks to Filip Hajny for the patch.
- bugfix: afterRun entry point not correctly called
The entry point was called at the wrong spot, only when the thread
had not already terminated by itself. This could cause various
cleanup to not be done. This affected e.g. imjournal.
closes https://github.com/rsyslog/rsyslog/issues/882
- bugfix dynstats: do not leak file handles
Thanks to Janmejay Singh for the patch.
- bugfix omelasticsearch: disable libCURL signal handling
previously, this could lead to segfaults on connection timeout
see also https://github.com/rsyslog/rsyslog/pull/1007
Thanks to Sai Ke WANG for the patch.
- bugfix omelasticsearc: some regressions were fixed
* error file was no longer written
* fix for some potential misaddressings
- improved wording: gnutls error message points to potential cause
What GnutTLS returns us is very unspecific and somehwat misleading, so
we point to what it most probably is (broken connect).
see also https://github.com/rsyslog/rsyslog/issues/846
- some general code improvements
* "fixed" cosmetic memory leaks at shutdown
- build system bugfix: configure can't find gss_acquire_cred on Solaris
Thanks to github user vlmarek for the patch.
- improvements to the CI environment
* improvements on the non-raciness of some tests
* imdiag: avoid races in detecting queue empty status
This reslolves cases where the testbench terminated rsyslog too early,
resulting in potential message loss and test failure.
* omkafka has now dynamic tests
Thanks to Janmejay Singh for implementing them.
* try to merge PR to master and run tests; this guards against cross-PR
regressions and wasn't caught previously. Note that we skip this test
if we cannot successfully merge. So this is not a replacement for a
daily full "all-project integration test run".
* travis has finally enabled elasticsearch tests
ES was unfortunately not being regularly tested for quite a while due to
missing environment. This lead to some regressions becoming undetected.
These were now discovered thanks to the new support on travis. Also, this
guards against future regressions.
* imfile has now additional tests and overall better coverage
* omfile has now additional tests
------------------------------------------------------------------------------
Version 8.18.0 [v8-stable] 2016-04-19
- testbench: When running privdrop tests testbench tries to drop
user to "rsyslog", "syslog" or "daemon" when running as root and
you don't explict set RSYSLOG_TESTUSER environment variable.
Make sure the unprivileged testuser can write into tests/ dir!
- templates: add option to convert timestamps to UTC
closes https://github.com/rsyslog/rsyslog/issues/730
- omjournal: fix segfault (regression in 8.17.0)
- imptcp: added AF_UNIX support
Thanks to Nathan Brown for implementing this feature.
- new template options
* compressSpace
* date-utc
- redis: support for authentication
Thanks to Manohar Ht for the patch
- omkafka: makes kafka-producer on-HUP restart optional
As of now, omkafka kills and re-creates kafka-producer on HUP. This
is not always desirable. This change introduces an action param
(reopenOnHup="on|off") which allows user to control re-cycling of
kafka-producer.
It defaults to on (for backward compatibility). Off allows user to
ignore HUP as far as kafka-producer is concerned.
Thanks to Janmejay Singh for implementing this feature
- imfile: new "FreshStartTail" input parameter
Thanks to Curu Wong for implementing this.
- omjournal: fix libfastjson API issues
This module accessed private data members of libfastjson
- ommongodb: fix json API issues
This module accessed private data members of libfastjson
- testbench improvements (more tests and more thourough tests)
among others:
- tests for omjournal added
- tests for KSI subsystem
- tests for priviledge drop statements
- basic test for RELP with TLS
- some previously disabled tests have been re-enabled
- dynamic stats subsystem: a couple of smaller changes
they also involve the format, which is slightly incompatible to
previous version. As this was out only very recently (last version),
we considered this as acceptable.
Thanks to Janmejay Singh for developing this.
- foreach loop: now also iterates over objects (not just arrays)
Thanks to Janmejay Singh for developing this.
- improvements to the CI environment
- enhancement: queue subsystem is more robst in regard to some corruptions
It is now detected if a .qi file states that the queue contains more
records than there are actually inside the queue files. Previously this
resulted in an emergency switch to direct mode, now the problem is only
reported but processing continues.
- enhancement: Allow rsyslog to bind UDP ports even w/out specific
interface being up at the moment.
Alternatively, rsyslog could be ordered after networking, however,
that might have some negative side effects. Also IP_FREEBIND is
recommended by systemd documentation.
Thanks to Nirmoy Das and Marius Tomaschewski for the patch.
- cleanup: removed no longer needed json-c compatibility layer
as we now always use libfastjson, we do not need to support old
versions of json-c (libfastjson was based on the newest json-c
version at the time of the fork, which is the newest in regard
to the compatibility layer)