Releases: yandex/odyssey
1.5.1 release candidate 7
DEALLOCATE bug fix
Full Changelog: v1.5.1-rc6...v1.5.1-rc7
1.5.1 release candidate 6
What's Changed
- server_assignment_count metrics by @rkhapov in #1332
- router.c: fix uneven attaching by @rkhapov in #1335
Full Changelog: v1.5.1-rc5...v1.5.1-rc6
1.5.1 release candidate 5
Fixes of several bugs from 1.5.1-rc4
Full Changelog: v1.5.1-rc4...v1.5.1-rc5
1.5.1 release candidate 4
Large rework of relay structure was done, to fix several long-standing problems and to make code cleaner.
New features so far
- shared_pool feature by @rkhapov in #1261
- pool_pin_on_listen option by @rkhapov in #1270
- trixie-slim for docker image by @rkhapov in #1290
- expose routing_clients metric in SHOW LISTS and Prometheus exporter by @evkuzin in #1295
- Structured version info for Prometheus metrics by @evkuzin in #1296
- introduce cancel timeout to prevent odyssey coroutine leaking by @evkuzin in #1299
- e2k build support by @rkhapov in #1308
- relay refactor by @rkhapov in #1291
- server_drop_on_cached_plan_error option by @rkhapov in #1312
- add NOTICE when awaiting connection from pool by @rkhapov in #1314
Full Changelog: v1.5.1-rc3...v1.5.1-rc4
1.5.1 release candidate 3
Generally for two fixes: race on server connection open and for reduce memory consumption in relay
when dst reads slower than src produces.
Also tcmalloc and dummy built-in memory profiling support was added to investigate possible mem leaks.
What's Changed
- fix route_wait race by @rkhapov in #1249
- add tcmalloc profile support by @rkhapov in #1253
- do not accumulate too large iov by @rkhapov in #1255
Full Changelog: v1.5.1-rc2...v1.5.1-rc3
1.5.1 release candidate 2
This is the same candidate as 1.5.1-rc1, but fixes SIGSEGVs from ef287e0 :)
Full Changelog: v1.5.0...v1.5.1-rc2
1.5.1 release candidate 1
Version 1.5.1 will be aimed at fixing problems, refactoring and adding uncomplicated new functionality.
This release candidate can significantly help you with large packets passing Odyssey with TLS enabled.
Fixes
- graceful termination little fixes by @rkhapov in #1212
- wait for pg to process cancel by @rkhapov in #1215
- return server connection to pool in frontend setup by @rkhapov in #1219
- fix hangling server ACTIVE connection by @rkhapov in #1221
- use client_login_timeout during startup by @rkhapov in #1222
- set NONBLOCK on accept() and socket() by @rkhapov in #1223
- set CLOEXEC to epoll by @rkhapov in #1224
- recheck pool size after server creation by @rkhapov in #1225
- restore config example by @rkhapov in #1228
- machinarium: fix include of mm header by @mikhailnov in #1227
- fix escaped chars by @ilya-maltsev in #1229
- fix memory leak in sync_point_deploy_msg by @uyghfjhh in #1230
- fix O(n^2) tls writev by @rkhapov in #1231
- send FATAL with description when graceful shutdown by @rkhapov in #1232
- cancel race fix by @rkhapov in #1216
New Contributors
- @mikhailnov made their first contribution in #1227
- @uyghfjhh made their first contribution in #1230
Full Changelog: v1.5.0...v1.5.1-rc1
1.5.0
Docker image and PGDG repository package
For purposes of easier introduce to Odyssey, public Docker image and packages at
PGDG was supported.
Now you can run odyssey with docker pull ghcr.io/yandex/odyssey:latest or apt-get install odyssey.
We will be glad to hear your feedback, you can use our Telegram chat :)
Learn more at: https://pg-odyssey.tech/quick-start.html
Special thanks for debian packages to become available to @df7cb !
Note: new releases can be available at PGDG repository after some time, day or two after the release on Github.
What's Changed
Default values changes
- set default readahead to one page by @rkhapov in #1121
- set pool_reserve_prepared_statement to yes by default by @rkhapov in #1174
- enable pool_smart_discard when disabling pool_discard by @rkhapov in #1205
- set default cache_coroutine to 256 by @rkhapov in #1207
Features
- sigusr2 online restart by @rkhapov in #1120
- Systemd notify patch by @evkuzin in #1128
- enable json logging by @evkuzin in #1130
- application_name_add_host now will add both ip and port for easier client identification by @evkuzin in #1122
- log full client working time by @rkhapov in #1152
- fallback to ucontext if arch is unsupported by @rkhapov in #1170
- add %T log string format, to print thread id by @rkhapov in #1182
- smart_search_path_enquoting by @rkhapov in #1195
- enable no linger to client connections by @rkhapov in #1198
- readahead cache by @rkhapov in #1151
- rate limiting for conn dropping by @rkhapov in #1209
Bug fixes
- sources/rules.c: fix reload of rules when min_pool_size is changed by @rkhapov in #1083
- Bullseye openssl fix by @evkuzin in #1126
- io.h: fix double free by @rkhapov in #1139
- fix build for 18 pg by @rkhapov in #1123
- fix free of rule key by @rkhapov in #1144
- better version handling by @rkhapov in #1162
- pass pthread_self into pthread_setname_np by @rkhapov in #1177
- relay.c: signal on_read when attach by @rkhapov in #1178
- relay.c: do not attach if client send X by @rkhapov in #1189
- fix transaction connection dropping by @rkhapov in #1208
Infrastructure
- use virtual ring buffer in readahead by @rkhapov in #1102
- add 'info clients' and 'info servers' to gdb.py by @rkhapov in #1134
- move out jdbc test into separated workflow by @rkhapov in #1147
- move tests into test folder by @rkhapov in #1148
- little rules refactor by @rkhapov in #1145
- check if tsan or asan log is not empty in functional tests by @rkhapov in #922
- add RelWithDbgInfo build by @rkhapov in #1150
- add debian build test by @rkhapov in #1159
- do not use postgresql library to impl scram by @rkhapov in #1165
- simplify and optimize hashmap impl by @rkhapov in #1197
Full Changelog: v1.4.1...v1.5.0
1.5.0 release candidate
What's Changed
Features
- application_name_add_host now will add both ip and port for easier client identification by @evkuzin in #1122
Fixes
- sources/rules.c: fix reload of rules when min_pool_size is changed by @rkhapov in #1083
- fix free of unused rules by @rkhapov in #1087
- #282 Return numeric port for Unix sockets in console output by @Fridmak in https://github.acom/yandex/odyssey/pull/1081
Docs
- docs: fix typos in docs by @gfischer7 in #1082
- fix docs by @rkhapov in #1088
- Add pg-odyssey.tech link by @visill in #1108
Infrastructure
- move kiwi from third_party to sources by @rkhapov in #1094
- move test -> sources/tests by @rkhapov in #1095
- third_party/mm -> sources/mm by @rkhapov in #1096
- run checks on changes in CMakeLists.txt by @rkhapov in #1099
- virtual ring buffer by @rkhapov in #1101
- move kiwi headers into include dir by @rkhapov in #1103
- move machinarium headers into include folder by @rkhapov in #1104
- move odyssey headers into include folder by @rkhapov in #1105
- machinarium_private.h disassemble by @rkhapov in #1106
- remove machinarium/c.h by @rkhapov in #1107
- ci: add prometheus/exporter to dependabot and fix workflow name by @gfischer7 in #1113
- use virtual ring buffer in readahead by @rkhapov in #1102
New Contributors
Full Changelog: v1.4.1...v1.5.0-rc
1.4.1
What's Changed
Features
- Pause resume by @rkhapov in #799
- sources/backend.c: shuffle endpoints by @rkhapov in #816
- Accept pgoptions hint for TSA. Use it in attach logic. by @reshke in #832
- Config option to disable PostgreSQL parameters maintenance by @reshke in #801
- Full virtual processing for SET by @reshke in #839
- sources/multi_pool by @rkhapov in #876
- sources/attach.c: use all endpoints in attach_extended by @rkhapov in #887
- Add new authentication type "external" for odyssey by @AndrewOvvv in #913
- add graceful_shutdown_timeout_ms option by @rkhapov in #942
- soft oom feature by @rkhapov in #958 (still in progress btw)
- Min pool size by @rkhapov in #921
- OMDB-130: Update exporter metrics names by @rivkind-nv in #986
- empty show host_utilization command by @rkhapov in #998
- Support startup option
roleby @reshke in #961 - log connected address of odyssey to new backend connection by @rkhapov in #1008
- more pg-way of auth failed message style: part 1 by @rkhapov in #1015
- ldap more pg-way auth error messages by @rkhapov in #1017
- more simple way to report ldap error by @rkhapov in #1018
- add host to application name at runtime by @rkhapov in #1027
- sources/console.c: support 'show rules' command by @rkhapov in #1075
- connection type in rules by @rkhapov in #1079
- Disable connection drop opt by @rkhapov in #805
Infrastructure
- Fix for non-release mode build by @reshke in #825
- Update Makefile: add usefull dev_run target by @reshke in #820
- Simplify od_relay_step logics. Conservative variant by @reshke in #823
- fix: remove ODY_DIR build arg from Makefile local_build target by @aidekqz in #798
- .github/workflows/build.yml: github action to check build by @rkhapov in #831
- Python tests for functional tests by @rkhapov in #845
- make postgresql & libpq an optional dependency by @reshke in #848
- use c23 as standard by @rkhapov in #860
- replace compiler intrinsics in machinarium by usage of stdatomic.h functions by @sergei-heifetz in #867
- add compile commands export to CMakeLists.txt by @sergei-heifetz in #882
- add compare-and-wait functionality to machinarium wait list by @sergei-heifetz in #881
- Simplify od_relay_step logics. Modern variant by @reshke in #824
- fix compiler warns by @rkhapov in #886
- rewrite wait list (notify_all, sleepy release) by @sergei-heifetz in #888
- rewrite wait_group (use compare_wait, change done behaviour) by @sergei-heifetz in #890
- sources/global.h: add global setter and getter by @rkhapov in #918
- docker/functional/shell-test/parse_pg_options_test.sh: tests to search_path by @Varman56 in #843
- test/odyssey: Add tests to odyssey hashmap by @Varman56 in #849
- add wait_flag by @sergei-heifetz in #906
- Build with prometheus-client-c library by @Varman56 in #944
- wait_group: change guarantees, add lifetime test, update docs by @sergei-heifetz in #983
- add clang functional test run by @rkhapov in #1007
- docker/build_public: image for dockerhub by @Varman56 in #980
- docker/quickstart/entrypoint.sh: Added dynamic build of config by @Varman56 in #1020
- add test for prom exporter by @rkhapov in #1029
- Add new metrics for pool capacity by @Ivelok in #1019
- Refactor odyssey exporter by @Ivelok in #1061
- relay.h: remove non-full packets handling by @rkhapov in #1050
- replace cpp style comment with c style comments by @rkhapov in #1044
- add clang at unit tests by @rkhapov in #1041
Bug fixes
- Fix worker stuck on shutdown by @rkhapov in #803
- sources/frontend.c: fix od_eject_conn_with_rate by @rkhapov in #804
- Fix client connection closing on unparsed bind by @reshke in #826
- simple mutex by @rkhapov in #815
- third_party/kiwi/kiwi/var.h: changed dst to pos by @Varman56 in #840
- sources/auth.c: actually do not offer scram-sha256-plus by @rkhapov in #842
- MINOR: fix leak on error path found by Coverity by @chipitsine in #863
- Fix for external auth plugins with no password users by @AndrewOvvv in #866
- Pass address for cancel requests by @reshke in #902
- Cancel tests + fix by @rkhapov in #903
- fix build for aarch64 by @rkhapov in #908
- sources/router.c: fix server_lifetime handling by @rkhapov in #919
- auth_query.c: fix leak of password msg by @rkhapov in #923
- sources/rules.c: fix default_address_range leak by @rkhapov in #925
- sources/external_auth.c: fix io leak for conn err case by @rkhapov in #926
- sources/multi_pool.c: fix leak by @rkhapov in #929
- sources/rules.c: fix msg leak by @rkhapov in #930
- machine.c: free SSL_CTX in machine end by @rkhapov in #931
- replace gmtime with gmtime_r to fix data race by @sergei-heifetz in #932
- fix server->closed data race by @sergei-heifetz in #934
- ldap leaks fixes by @rkhapov in #936
- fix cron stop (fix data race, replace mutex with wait flag) by @sergei-heifetz in #945
- Fix attach time in relay by @rkhapov in #988
- some fixes for asan in hba by @rkhapov in #1002
- fix stack use after return by @rkhapov in #1004
- fix asan for group checker by @rkhapov in #1003
- Fix group checker race by @rkhapov in #1005
- fix leak in scram sha 256 by @rkhapov in #1011
- Fix memory leak due to unfree message's data and fix out-of-bound read in authentications methods by @AndrewOvvv in #1064
Documentation updates
- initial commit for docs with mcdocs by @rkhapov in #949
- add even more docs by @rkhapov in #953
- catchup-timeout.md catchup_timeout typo by @barazbay in #990
- Update rules.md catchup_checks "see link" by @barazbay in #991
- Update global.md Configuration Parameters Reference by @barazbay in #992
- Update mkdocs.yml by @rkhapov in #993
- add plugin for s3 build of docs by @rkhapov in #996
- terraform s3 backet creation script by @rkhapov in #997
- Configuration Parameters Reference and English grammar by @barazbay in #994
- chore: Fix typos by @gfischer7 in #1062
AI features
New Contributors
- @Varman56 made their first contribution in #794
- @sergei-heifetz made their first contribution in #867
- @Fenoman made their first contribution in #810
- @rivkind-nv made their first contribution in #986
- @barazbay made their first contribution in #990
- @gfischer7 made their first contribution ...