/
ChangeLog
4448 lines (3169 loc) · 175 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
# -*- coding: utf-8; tab-width: 4; -*-
# ex: set fenc=utf-8 sts=4 ts=4 et nomod:
2017-09-04 Michael Truog <mjtruog [at] gmail (dot) com>
* Update quickrand
2017-09-02 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix the service configuration option response_timeout_immediate_max
when request_name_lookup is set to async and a lookup timeout occurs
* Fix cloudi_queue:send when PatternPid is provided as undefined
2017-09-01 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix release script to always succeed with stop (for openrc-run)
* Improve configure script rebar check
* Fix monkey_latency time_gaussian bug that would almost never occur
(the Box-Mullter transformation X1 would need to be 0.0)
* Update quickrand
* Fix dialyzer execution to match the new paths of
the Erlang integration tests
* Add environment variable arguments
CLOUDI_ARG_NODE_NAME_SHORT, CLOUDI_ARG_NODE_NAME_LONG, and
CLOUDI_ARG_NODE_COOKIE to the configure script for modifying the
vm.args file used in the CloudI release
2017-08-11 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix automake build of Erlang source code for parallel use
2017-08-10 Michael Truog <mjtruog [at] gmail (dot) com>
* Finished improving the automake build of Java source code
* Fix the install step of the Haskell integration tests
2017-08-09 Michael Truog <mjtruog [at] gmail (dot) com>
* Reduce the release script functionality to the core necessary and
add default values for all erl and epmd environment variables
* Fix Java CloudI API compilation for parallel make
2017-08-08 Michael Truog <mjtruog [at] gmail (dot) com>
* Change the runtime current working directory to the log directory
2017-08-06 Michael Truog <mjtruog [at] gmail (dot) com>
* Change log_time_offset log output to seconds with nanoseconds precision
2017-08-05 Michael Truog <mjtruog [at] gmail (dot) com>
* Service configuration option request_timeout_adjustment was modified to
use Erlang monotonic time so timeout adjustments are not impacted by any
OS time changes
* Javascript CloudI API now properly handles the request_timeout_adjustment
service configuration option for service request responses
* cloudi_service_http_client, cloudi_service_http_cowboy,
cloudi_service_http_elli now use Erlang monotonic time when reporting
the time a request takes in the log output
2017-08-03 Michael Truog <mjtruog [at] gmail (dot) com>
* Handle erlang:deprecated_time_unit() in Erlang/OTP 20
for future compatibility
* Update uuid
* Add CloudI Service API logging_set configuration option
log_time_offset to log when the Erlang VM updates its time_offset
with the time_offset change logged in nanoseconds
(the difference between the Erlang monotonic time and
the Erlang system time which gets adjusted to match the OS system time,
every minute rougbly, when necessary)
2017-08-02 Michael Truog <mjtruog [at] gmail (dot) com>
* Update Travis build configuration to use
g++-6 clang-4.0 python-3.6 ruby-2.4.0
2017-07-21 Michael Truog <mjtruog [at] gmail (dot) com>
* Update the release scripts for use without autoconf/automake in the
examples hello_world_reltool and hello_world_embedded
* Fix installation/runtime permissions for root usage
2017-07-18 Michael Truog <mjtruog [at] gmail (dot) com>
* Do not use Erlang/OTP rb (report browser) files (log_mf_h)
to avoid creating the extra log files
(log_mf_h will soon be deprecated,
based on https://bugs.erlang.org/browse/ERL-101)
* Do not allow overriding run_erl env variables in the release script
2017-07-15 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the test command to the release script to provide the
current status as the script exit status value (currently only 0 or 1)
* Always remove the pid file in the release script when stop is done
2017-07-03 Michael Truog <mjtruog [at] gmail (dot) com>
* Update syslog_socket
2017-07-02 Michael Truog <mjtruog [at] gmail (dot) com>
* Rewrite nodetool script to simplify the release script
* Add CLOUDI_PID_FILE as a configure environment variable
with the default equivalent to $localstatedir/log/cloudi/cloudi.pid
(keeps release script variables static)
* Now limit the number of atoms the nodetool script may add to the
running node to 2*251 (MAX_ATOMS is set to 251 in nodetool)
2017-07-01 Michael Truog <mjtruog [at] gmail (dot) com>
* Simplify release scripts with configuration values assigned
2017-06-23 Michael Truog <mjtruog [at] gmail (dot) com>
* Add fixes for cloudi_service_filesystem tests to use TMPDIR
2017-06-20 Michael Truog <mjtruog [at] gmail (dot) com>
* Add cloudi_timestamp:uptime functions
2017-06-19 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix Go CloudI API 32bit support
* Fix Python/C CloudI API compilation when Python 3 is requested
(previously was compiling/linking with Python 2)
2017-06-08 Michael Truog <mjtruog [at] gmail (dot) com>
* Add pointer handling comment to C http_req test
2017-06-07 Michael Truog <mjtruog [at] gmail (dot) com>
* CloudI version 1.7.1 released
2017-06-06 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix internal services_remove use with automatic_loading == true
(the default) so all modules are marked as old before purge
* Do not log error when duo_mode enabled service is stopped or restarted
2017-06-01 Michael Truog <mjtruog [at] gmail (dot) com>
* Changed the included Erlang services from dict to maps usage
* Performed manual-update for generated source files
* Update backward-cpp
* Added Haskell CloudI API source code documentation
2017-05-31 Michael Truog <mjtruog [at] gmail (dot) com>
* Changed license from BSD-4-Clause to MIT
* Haskell CloudI API 1.7.0 package has a bug
(http://hackage.haskell.org/package/cloudi)
though it wasn't in the 1.7.0 release of this repo
(https://github.com/CloudI/CloudI) that is fixed by
https://github.com/CloudI/cloudi_api_haskell/commit/6cb7bf2b7797a0e922cd89a65fa8d367e2e052fb#diff-92a7fa4cc96701cc12a30c282ce7f2eaL846
2017-05-30 Michael Truog <mjtruog [at] gmail (dot) com>
* Travis builds/tests with both gcc and clang
2017-05-24 Michael Truog <mjtruog [at] gmail (dot) com>
* Use maps in cloudi_core helper modules
* Remove older compatibility code for maps/dict/queue
* Update trie
2017-05-23 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix erlang:get_stacktrace/0 usage with Erlang/OTP 20.0
* Use maps in cloudi_core call paths that impact performance
* Update key2value and keys1value
2017-05-16 Michael Truog <mjtruog [at] gmail (dot) com>
* Update quickrand
2017-05-15 Michael Truog <mjtruog [at] gmail (dot) com>
* Using the CloudI API functions send_sync or recv_async during the
service's initialization previously returned an error, but will now
cause the service to crash, to pursue fail-fast operation and to keep
the effect the same for both internal and external services
2017-05-05 Michael Truog <mjtruog [at] gmail (dot) com>
* Update msgpack
2017-05-04 Michael Truog <mjtruog [at] gmail (dot) com>
* Removed the internal cloudi_core_i_logger:current_function/0 function
since the FUNCTION_NAME macro now exists
2017-05-02 Michael Truog <mjtruog [at] gmail (dot) com>
* Fixes for Erlang/OTP 20.0 support
* epgsql_wg support was removed from cloudi_service_db_pgsql due to
being unmaintained and using gen_fsm
(cloudi_service_db_pgsql now uses semiocast as the default)
* The cloudi executable now uses a pid file to block during stop and
provides the OS process name as "CloudI"
* External service source code switched from gen_fsm to gen_statem
* Update quickrand
* Fix OCaml CloudI API usage with Erlang/OTP 20.0
(Erlang binary term format parsing in OCaml had an atom parsing bug
for pids and other types that store an atom)
* Updated the cloudi executable used in the Erlang examples
2017-04-20 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix chroot and directory service configuration options
validation of absolute paths
* Add libtool/autoconf version check
* Fix usage of the owner service configuration option
when it is used with the chroot service configuration option
2017-04-18 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix Python CloudI API compatibility with Python v3
(incompatibility was added in CloudI 1.7.0)
* Add request_rate integration test throughput data for 1.7.1
2017-04-17 Michael Truog <mjtruog [at] gmail (dot) com>
* Update cpg
2017-04-12 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix validation of chroot and directory service configuration options
to work properly together and require absolute paths
* Update cpg
2017-04-10 Michael Truog <mjtruog [at] gmail (dot) com>
* Add Erlang map type specification usage
* Update cpg
2017-04-09 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix the chroot service configuration option to change the
current working directory to / if the directory
service configuration option was not provided
* Fix the chroot service configuration option to be done before
the owner service configuration option is applied
* Change the nice and limit service configuration options to be
applied before the owner service configuration option
(this approach is more consistent with the cgroup
service configuration option; the user/group executing
CloudI owns the CloudI external service OS processes and these
permissions should be used for controlling the OS process
attributes before the exec occurs)
2017-04-08 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the chroot service configuration option for external services
* Fix C++ compilation warnings
2017-03-31 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve reltool configuration for examples
(nodefinder optional dependencies are not added to the release
automatically to keep the example release minimal)
* Update nodefinder
2017-03-29 Michael Truog <mjtruog [at] gmail (dot) com>
* CloudI version 1.7.0 released
2017-03-28 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve count_process_dynamic logging
2017-03-25 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve Ruby CloudI API socket recv logic
* Improve Python CloudI API socket recv logic
* Improve PHP CloudI API socket recv logic
* Improve Perl CloudI API socket recv logic
* Improve OCaml CloudI API socket recv logic
* Improve Haskell CloudI API socket recv logic
* Improve Go CloudI API socket recv logic
* Improve Java CloudI API socket recv logic
* Update quickrand
2017-03-24 Michael Truog <mjtruog [at] gmail (dot) com>
* Remove the CloudI API helper function
request_http_qs_parse so only the helper function
info_key_value_parse is used (both functions do the same thing)
(Erlang requires using cloudi_request_info:key_value_parse/1 instead of
cloudi_request:http_qs_parse/1)
2017-03-23 Michael Truog <mjtruog [at] gmail (dot) com>
* Update quickrand
* Add the messaging integration test in Haskell
* Improve the OCaml messaging integration test
* The Haskell CloudI API is now tested
2017-03-22 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the count integration test in Haskell
* Add the msg_size integration test in Haskell
* Add the null integration test in Haskell
* Updated the CloudI API README
2017-03-21 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the remaining core logic to Haskell CloudI API
* Add Forward return values to both the OCaml and Haskell CloudI APIs
to be similar to the Erlang CloudI API return values
* Complete the http_req integration test in Haskell
2017-03-20 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve OCaml CloudI API internal type usage
* Add basic callback logic to Haskell CloudI API beginnings
(currently requires GHC >= 7.10.3)
2017-03-18 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix the Haskell CloudI API beginning to initialize/terminate properly
2017-03-17 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the beginnings of the http_req Haskell integration test
* Improve Go and Ocaml integration tests makefiles
2017-03-16 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the beginnings of the Haskell CloudI API
2017-03-15 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve OCaml CloudI API callback type usage
* Remove files duplicated in src/external/
* Update NOTICE file
2017-03-14 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve OCaml CloudI API poll timeout handling
2017-03-11 Michael Truog <mjtruog [at] gmail (dot) com>
* C, Go, OCaml CloudI API change
(breaks previous use of the C CloudI API) to keep state data
within the CloudI API instance while using the same callback
function argument order used by the Erlang CloudI API
* The consistent interface CloudI provides with the CloudI API for
CloudI service request data is:
(RequestType, Name, Pattern, RequestInfo, Request,
Timeout, Priority, TransId, Source)
with the (State, API) data before the service request data in
programming languages that use object methods
(State is the object) or after the service request data in
programming languages that rely on an isolated function
(C, Erlang, Go, OCaml, Haskell (not added yet))
* Add the count integration test
2017-03-08 Michael Truog <mjtruog [at] gmail (dot) com>
* Update quickrand, uuid
2017-03-06 Michael Truog <mjtruog [at] gmail (dot) com>
* Add module, line, function_name, function_arity information to
cloudi_logger_hut (CloudI/HUT) logging integration
2017-02-26 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve type specification
* Make hut application env settings explicit
2017-02-25 Michael Truog <mjtruog [at] gmail (dot) com>
* Add lager integration in cloudi_logger_lager module
2017-02-24 Michael Truog <mjtruog [at] gmail (dot) com>
* Update exometer and exometer_core dependencies for
cloudi_service_monitoring
* Add the hut dependency
* Update parse_trans and setup dependencies
* Add exometer_influxdb dependency for cloudi_service_monitoring
* Add hackney dependency
* Add certifi, idna, metrics, mimerl, ssl_verify_fun dependencies
* Remove lager and goldrush
* Change to ensure data logged in sync mode is never dropped due to
flooding check for misbehaving Erlang processes
* Added cloudi_logger_hut module for hut logging integration
(used by cloudi_service_monitoring dependencies:
cloudi_x_exometer, cloudi_x_exometer_influxdb)
* Rely on reltool to find all CloudI service dependencies
(may now not be a problem after removing lager)
* Fix folsom usage of old random module to survive removal
(in Erlang/OTP 20.0 release)
2017-02-23 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the CloudI Service API logging_stdout_set functionality
to output all log data to stdout
* Improvements to the CloudI logger to reduce latency
* cloudi_service_api:aspect_log_f() now uses iodata for the LogMessage
* Improve service configuration format written to log to avoid column limit
2017-02-22 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the messaging integration test in OCaml
* The OCaml CloudI API is now tested
* Record backtrace in OCaml integration tests
2017-02-21 Michael Truog <mjtruog [at] gmail (dot) com>
* OCaml CloudI API now is working with the http_req integration test
* Add the null integration test in OCaml
* Add the msg_size integration test in OCaml
2017-02-18 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the beginnings of the OCaml CloudI API
2017-02-16 Michael Truog <mjtruog [at] gmail (dot) com>
* Change the default buffer_size value for external service configuration
from 16384 to 65536 to match Linux localhost MTU setting
(http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0cf833aefaa85bbfce3ff70485e5534e09254773)
* Add buffer_size 65536 usage in Go CloudI API erlang.TermToBinary code
2017-02-09 Michael Truog <mjtruog [at] gmail (dot) com>
* Change the Go CloudI API to use the cloudi.Source type for the
erlang.OtpErlangPid type, simplifying package import usage
* Add Go CloudI API documentation
* Fix the services_update CloudI Service API function so
{type, internal} may be used without specifying the module
(if the service ID is not "")
2017-02-08 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix the Perl, PHP, Python, and Ruby CloudI APIs so count_process_dynamic
usage is not able to cause external service processes to become
non-responsive (problem was not observed during testing)
* Fix CloudI Service API services_update usage with external services
so updates that do not create a new OS process do update the following
parameters used by the CloudI API instance:
* timeout_async (default async timeout value)
* timeout_sync (default sync timeout value)
* (default priority value)
* (request_timeout_adjustment service configuration option value)
2017-02-07 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the messaging integration test in Go
* Remove extra nextTick calls within the Javascript CloudI API
* Fix a possible buffer underrun in the Javascript CloudI API
* The "command" variable in service request handlers within the
integration tests that are external services has been changed to be
"request_type" which is more consistent with other source code and
helps to distinguish it from the internal "command" variable
* The GO configure variable now works properly
* The Go CloudI API is now tested with Go 1.7.5 and all is well
* Add SubscribeCount test to http_req Go integration test
2017-02-06 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the null integration test in Go
* Add the msg_size integration test in Go
* Now Go errors that use cloudi.StackError have a stack trace in output
with generic output functions cloudi.ErrorWrite and cloudi.ErrorExit
2017-02-04 Michael Truog <mjtruog [at] gmail (dot) com>
* Go CloudI API now is working with the http_req integration test
2017-02-03 Michael Truog <mjtruog [at] gmail (dot) com>
* Updates to the Erlang binary term format encoding used in the
CloudI API implementations for Javascript, Perl, PHP, Python, Ruby
* Bounds checking was added and variable names were improved
* Javascript encoding of an object as a map was fixed
* The beginnings of a Go CloudI API has been added,
but is not yet usable (will allow integration tests to be added)
2017-02-01 Michael Truog <mjtruog [at] gmail (dot) com>
* Fixes to ensure logging from CloudI in Erlang source code is logging
data as UTF8 (now modules, function names, nodes, log file paths and
log data from Erlang services as unicode strings ("~ts") is written
as utf8 data to the log file and the output is consistent with unicode
output in external services)
* Fix cloudi_string:format_to_binary/2 so it works properly with
unicode formatting arguments
* cloudi_service_api:aspect_log_f() type changed to use utf8 log message
2017-01-16 Michael Truog <mjtruog [at] gmail (dot) com>
* Mark hello_world3 example for removal
(details at https://github.com/CloudI/CloudI/issues/201)
2017-01-11 Michael Truog <mjtruog [at] gmail (dot) com>
* CloudI version 1.6.0 released
2017-01-09 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix bug with external services not using the
response_timeout_immediate_max service configuration option value
when receiving invalid request and/or request_info
within a service request
* Change the meaning of the service configuration options
request_timeout_immediate_max and response_timeout_immediate_max so that
the timeout value must be greater than or equal instead of greater than
with the defaults changed from 20000 milliseconds to 20001 milliseconds
to provide the same default behavior that was present previously
(better characteristics when being set to 0, which will be limit_min)
* Allow limit_min or limit_max to be used for the service configuration
options request_timeout_immediate_max, response_timeout_immediate_max,
restart_delay, monkey_latency
2017-01-08 Michael Truog <mjtruog [at] gmail (dot) com>
* Allow limit_min or limit_max to be used for timeout_init,
timeout_async, timeout_sync in the service configuration
and timeout_terminate in the service configuration options
* Changed the minimum default send_async and send_sync timeout value
for service configuration from 101 milliseconds to 499 milliseconds
(based on current macros) to be consistent with
limit_min use in the cloudi_service module and the cloudi module
* Erlang type cloudi_service_api:timeout_milliseconds() was removed and
split into more specific types
* Add manual-update makefile target for updating automatically
generated files that must be updated manually
* Remove cloudi_service_api functions deprecated since v1.3.3 release
* Remove cloudi_service functions deprecated since v1.3.3 release
2017-01-07 Michael Truog <mjtruog [at] gmail (dot) com>
* The Erlang cloudi_service and cloudi modules now use the atom
limit_min instead of immediate for the timeout value, to represent
the largest timeout value possible to avoid timer use
(499 milliseconds with the current macro definitions) though the minimum
timeout value remains 0 for these functions
(limit_min/limit_max will later also be used for timeout configuration)
* The immediate atom usage is retained to allow removal in a future
CloudI release, though dialyzer currently lacks the ability to
deprecate an Erlang type specification, so this change requires
human attention that doesn't rely on tools to detect
* The Erlang cloudi_service and cloudi modules now accept the atom
limit_max as the timeout value which is the maximum possible
(4294967195 milliseconds with the current macro definitions,
i.e., 49.7 days)
2017-01-06 Michael Truog <mjtruog [at] gmail (dot) com>
* Ensure all CloudI API implementations can handle a null object return
value, if the concept of null exists in the programming language
(required updating the Java and Perl CloudI APIs,
since the rest already handle this)
* Add the null integration tests in all the supported programming languages
* The C/C++ CloudI API now makes stdout usage unbuffered
(to be consistent with the other CloudI API implementations,
which have stdout/stderr unbuffered so the output is
logged as quickly as possible)
2017-01-05 Michael Truog <mjtruog [at] gmail (dot) com>
* Update supool
(Now all process dictionary use (in Erlang source code)
within CloudI is minimal, only done when completely necessary)
2016-12-27 Michael Truog <mjtruog [at] gmail (dot) com>
* Add additional syslog logging configuration options
2016-12-26 Michael Truog <mjtruog [at] gmail (dot) com>
* Add the syslog_socket pure Erlang syslog interface
* Remove the cloudi_x_syslog port driver
(cloudi_core now has no internal NIF usage or internal port driver usage
which helps to ensure reliable operation in any environment)
* Fix bug with attempting to use syslog severity 8 with cloudi_x_syslog
though this changes the syslog severity level mapping with
CloudI log levels
* CloudI now uses standard syslog facility values from syslog_socket
(strictly based on RFC3164 and RFC5424) instead of the custom
facility values defined by cloudi_x_syslog
2016-12-22 Michael Truog <mjtruog [at] gmail (dot) com>
* Remove CloudI Erlang/OTP version macro checks for before 19.x
to remove the cloudi_core_i_socket NIF and accumulated preprocessor checks
(cloudi_core now has no internal NIF usage,
the only internal port driver usage is through
cloudi_x_syslog when syslog usage is enabled)
* Add linear options to the restart_delay service configuration option
2016-12-21 Michael Truog <mjtruog [at] gmail (dot) com>
* Add CloudILogger Elixir module to the cloudi_core Erlang application
* Fix CloudILogger Elixir usage of function/arity data
* Update the Elixir.HelloWorld1 example based on the changes
* Update reltool_util
2016-12-20 Michael Truog <mjtruog [at] gmail (dot) com>
* Require Erlang/OTP 19.x or higher
* Switch to always logging the function name and arity due to EEP45
included in Erlang/OTP 19.x
* Update reltool_util
* Fix old rebar2 package compile issue
2016-12-19 Michael Truog <mjtruog [at] gmail (dot) com>
* Change the name of the service configuration option
terminate_delay to restart_delay, to avoid being misleading
* Update cloudi_service_monitoring to handle changes to cloudi_core
for the restart_delay service configuration option
* Add request_pid and info_pid metrics for internal services to
cloudi_service_monitoring
2016-12-17 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve validation of the service configuration options
terminate_delay, count_process_dynamic and monkey_latency
2016-12-16 Michael Truog <mjtruog [at] gmail (dot) com>
* Add terminate_delay service configuration option to allow a
service instance to delay a restart
(attempting to avoid spurious failures when the failure cause
requires a short amount of time to be resolved)
based on the suggestions of Richard Carlsson in
https://github.com/erlang/otp/pull/1287
* Fix service restarts to ensure all terminate functions have completed
(or service thread(s) had a termination timeout complete)
before restarting the service instance
* Fix service configuration option timeout_terminate value output
in log output of the service configuration
2016-12-15 Michael Truog <mjtruog [at] gmail (dot) com>
* Add count result to cloudi_timestamp:seconds_filter/3 return value
2016-12-10 Michael Truog <mjtruog [at] gmail (dot) com>
* Make Erlang file module use more efficient with additional usage of
the raw option and pwrite
2016-11-28 Michael Truog <mjtruog [at] gmail (dot) com>
* Avoid deprecated std::auto_ptr in C++11
2016-11-23 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix to avoid triggering SYN flooding protection in
newer Linux kernel versions
(e.g., 4.4.0-47 used with Ubuntu 16.04.1)
* Improve error log output
2016-11-22 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve external service startup time
* Minor integration test fix
2016-11-21 Michael Truog <mjtruog [at] gmail (dot) com>
* Update cpg
* Update trie
2016-11-16 Michael Truog <mjtruog [at] gmail (dot) com>
* Make OS time more efficient in cloudi_timestamp
2016-11-11 Michael Truog <mjtruog [at] gmail (dot) com>
* Update cpg
2016-11-10 Michael Truog <mjtruog [at] gmail (dot) com>
* Update cpg
2016-11-06 Michael Truog <mjtruog [at] gmail (dot) com>
* Add missing syntax_tools dependency due to merl usage
2016-11-04 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve external service port deserialize
2016-10-29 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve max_heap_size type specification
2016-10-28 Michael Truog <mjtruog [at] gmail (dot) com>
* Update locally modified m4 macros after submitting the changes to
the GNU Autoconf Archive
2016-10-08 Michael Truog <mjtruog [at] gmail (dot) com>
* m4/ax_check_class.m4 and m4/ax_prog_java_works.m4
had uuencoded java class files which were removed
(the uuencoded java class files were decompiled to confirm
they match the commented code, but the reliance on
binary data isn't necessary or helpful for future use)
2016-10-07 Michael Truog <mjtruog [at] gmail (dot) com>
* CloudI version 1.5.4 released
* Revert ax_boost_thread.m4 update due to it requiring local changes
in the past and breaking integration test compilation on some platforms
2016-10-06 Michael Truog <mjtruog [at] gmail (dot) com>
* Add request_rate testing with and without the use of cloudi_service_queue
to look at the request rate with persistence of transactions
2016-10-05 Michael Truog <mjtruog [at] gmail (dot) com>
* Update cgroups
2016-10-04 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix internal CloudI service bug storing service state when
both service requests and info messages are queued
(only observed when duo_mode was true with a high request rate)
* Refactor CloudI service source code to avoid duplicating
state record field data as separate function arguments
2016-10-02 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve handling of a request timeout in cloudi_service_queue
when using both mode by always having an empty response sent after
the timeout of the request expires (including when retries are not used)
2016-10-01 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve handling of a request timeout in cloudi_service_queue
when using both mode after a retry
* Add cloudi_trans_id:microseconds/0 function
2016-09-30 Michael Truog <mjtruog [at] gmail (dot) com>
* Make significant improvements to cloudi_service_queue
* Prevent any incomplete write from creating corrupt data
* retry service argument functions now works as expected
* Added retry_delay service argument for destinations that
are infrequently available
2016-09-26 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix starting a CloudI service with a script or boot file
* reltool fix in 19.0 changed application load order
* Needed file read errors returned
* Improve the Erlang usage examples
* Update reltool_util
2016-09-24 Michael Truog <mjtruog [at] gmail (dot) com>
* Add logging_set CloudI Service API function
* Update varpool
* Fixes for dialyzer in cloudi_core repo
2016-09-23 Michael Truog <mjtruog [at] gmail (dot) com>
* Add cgroup and nice service configuration options
* Add cgroups Erlang application as a cloudi_core dependency
2016-09-20 Michael Truog <mjtruog [at] gmail (dot) com>
* Update GEPD dependency with commit/tag/file specifics
2016-09-19 Michael Truog <mjtruog [at] gmail (dot) com>
* Update backward-cpp (not updating macro check yet for configure script)
(backward-cpp claims arm support now)
* Update external autoconf macros
2016-09-16 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix old configuration entries
2016-09-15 Michael Truog <mjtruog [at] gmail (dot) com>
* CloudI version 1.5.3 released
* Update Python Erlang Binary Term Format source code to
handle Erlang maps nested as keys in a map
2016-09-14 Michael Truog <mjtruog [at] gmail (dot) com>
* Next release will be 1.5.3 instead of 1.5.2 due to dependency updates
* Update nodefinder and remove dependencies that are no longer necessary
(erlcloud, eini, lhttpc)
* Update msgpack
* Update reltool_util
* Update jinterface to 1.6.1 (from Erlang/OTP 18.3)
to match the last maven package version
* Fix Java CloudI API javadoc comments
2016-08-30 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix autoconf Erlang version check to work with github versions, like
"18.3.4.1" (with 2 or more separate patch numbers instead of 1)
2016-08-27 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix CloudI Service API services_update timeout bug
* Change CloudI Service API services_update to use a gradual
transition between service name pattern subscriptions for
external service updates so that the new OS process initialization
occurs before the old OS process subscriptions are removed
* Change the CloudI API implementations to provide a null response
when a service name pattern doesn't exist as a subscription, so
that old service requests that have been queued before an
external service update automatically get a null response after the
update is done
2016-08-26 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix CloudI Service API services_update for external services
so that unsubscribe automatically occurs on all subscriptions
immediately before the initialization of a new OS process,
if a new OS process is spawned due to the update
* Update cpg
2016-08-23 Michael Truog <mjtruog [at] gmail (dot) com>
* Update trie
* Update pqueue
2016-08-22 Michael Truog <mjtruog [at] gmail (dot) com>
* Change Java CloudI API List return types to not be abstract
2016-08-12 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix final keyword usage in Java CloudI API
2016-08-09 Michael Truog <mjtruog [at] gmail (dot) com>
* Add cloudi_timestamp functions seconds_os/0,
milliseconds_os/0, microseconds_os/0
* Use new cloudi_timestamp:milliseconds_os/0 function to reduce latency
* Improve request_timeout_adjustment logic
* Improve quickstart markdown format
2016-08-08 Michael Truog <mjtruog [at] gmail (dot) com>
* Add Java 8 method reference support to the Java CloudI API
* Improve the constant usage within the Java CloudI API
2016-08-06 Michael Truog <mjtruog [at] gmail (dot) com>
* Add arity checking in the Java CloudI API subscribe function
2016-08-03 Michael Truog <mjtruog [at] gmail (dot) com>
* Add Java CloudI API timestamp accessor for ISO8601 SQL variation
* Add Java CloudI API timestamp accessor for a microseconds integer value
2016-08-02 Michael Truog <mjtruog [at] gmail (dot) com>
* Add Java CloudI API accessors on the TransId class to get
the timestamp when the service request was created
2016-07-27 Michael Truog <mjtruog [at] gmail (dot) com>
* Allow internal CloudI services to optionally use the callbacks
cloudi_service_handle_request/11 and
cloudi_service_handle_info/3
* Update pqueue
2016-07-21 Michael Truog <mjtruog [at] gmail (dot) com>
* Update erlcloud
2016-07-06 Michael Truog <mjtruog [at] gmail (dot) com>
* Simplify logger module creation
2016-06-28 Michael Truog <mjtruog [at] gmail (dot) com>
* Add directory external service configuration option to set the
current working directory for the external service OS process
2016-06-26 Michael Truog <mjtruog [at] gmail (dot) com>
* No longer use the dynamic_compile dependency in the cloudi_core logger
(instead rely on merl)
* Switch to requiring Erlang >= 18.0 due to merl in syntax_tools
* Update proper
2016-06-22 Michael Truog <mjtruog [at] gmail (dot) com>
* Make the Java CloudI API TransId class publicly accessible and
add a conversion to a UUID object
* Java CloudI API standard streams now use UTF8
* Fix owner service configuration option usage
2016-06-18 Michael Truog <mjtruog [at] gmail (dot) com>
* Update mimetypes
2016-06-15 Michael Truog <mjtruog [at] gmail (dot) com>
* Add string UUID formatting for the services_update result in
cloudi_service_api_requests
* Update cpg README
2016-06-05 Michael Truog <mjtruog [at] gmail (dot) com>
* Improve cloudi_service_api:aspect_log_f() type
* Add define specifically for cloudi_core_i_socket usage
2016-06-04 Michael Truog <mjtruog [at] gmail (dot) com>
* Add aspects_log_before and aspects_log_after logging configuration
in cloudi_core
* Add aspects_log_before and aspects_log_after logging support in
cloudi_service_monitoring
2016-06-03 Michael Truog <mjtruog [at] gmail (dot) com>
* Add dispatcher_pid_options and init_pid_options
service configuration options to services_add and services_update
* Add usage of the new unix domain socket functionality
in Erlang/OTP 19.0rc2 for external service usage of the protocol local
(default == local) to avoid using a NIF
* Fix external service usage of protocol local
with count_process > 1
* Improve Erlang NIF compilation
2016-06-02 Michael Truog <mjtruog [at] gmail (dot) com>
* Add monkey_latency, monkey_chaos, aspects_init_after,
aspects_request_before, aspects_request_after,
aspects_info_before, aspects_info_after, and
aspects_terminate_before service configuration options to
service_updates
* Fix service_updates usage of the service configuration options
rate_request_max and hibernate
* Fix service_updates usage of the service configuration options
info_pid_uses and/or info_pid_options with an internal service that
uses duo_mode == true
* Fix internal service usage of rate_request_max,
count_process_dynamic, and/or hibernate with duo_mode == true
(so the options do not affect the dispatcher process)
* Update varpool, reltool_util
2016-06-01 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix dest_list_deny and dest_list_allow expansion in services_update
* Improve Erlang term reuse in the source code
(Thanks to Anthony Ramine spotting problems)
* Add service configuration options rate_request_max,
dest_refresh_start, dest_refresh_delay, hibernate, and reload
to service_updates
* Allow specific internal service updates with service_updates if
module_state is not provided
* Do not force an external service restart for the limit
service configuration option
* Add -deprecated attribute usage in the
cloudi_service and cloudi_service_api Erlang modules
2016-05-31 Michael Truog <mjtruog [at] gmail (dot) com>
* Add preliminary service configuration update with services_update
* Add dest_refresh, dest_list_deny, dest_list_allow to services_update
* Allow timeout_init for internal services with services_update
2016-05-27 Michael Truog <mjtruog [at] gmail (dot) com>
* Add some options parsing for services_update input
2016-05-26 Michael Truog <mjtruog [at] gmail (dot) com>
* Add CloudI Service API services_update external service functionality
* Fix text_pairs format for HTTP GET query strings in
cloudi_service_http_cowboy and cloudi_service_http_elli
2016-05-25 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix aspect function validation
* Update key2value
2016-05-22 Michael Truog <mjtruog [at] gmail (dot) com>
* Fix services_update modules_unload
* Update reltool_util
2016-05-21 Michael Truog <mjtruog [at] gmail (dot) com>
* Add CT test of services_update
* Change services_update to not load the module of an
internal service by default
* Add the new module version to the update function for services_update
* Fix services_update error when a process is handling a service request
* Finalize services_update return value