Age | Commit message (Collapse) | Author |
|
The counter used for generating async operation ids was a plain int
shared between all ports, which was incorrect but mostly worked
fine since the ids only had to be unique on a per-port basis.
However, some compilers (notably GCC 8.1.1) generated code that
assumed that this value didn't change between reads. Using a
shortened version of enq_async_w_tmo as an example:
int id = async_ref++;
op->id = id; //A
return id; //B
In GCC 7 and earlier, `async_ref` would be read once and assigned
to `id` before being incremented, which kept the values at A and B
consistent. In GCC 8, `async_ref` was read when assigned at A and
read again at B, and then incremented, which made them inconsistent
if we raced with another port.
This commit fixes the issue by removing `async_ref` altogether and
replacing it with a per-port counter which makes it impossible to
race with someone else.
|
|
|
|
|
|
|
|
* lukas/erts/fix_zz_sigterm_kill/OTP-14451:
erts: Fix so that 81b628 (sigterm=kill) works
|
|
* rickard/purge-hibernated-19/ERIERL-24/OTP-14444:
Update testcase to check that purge handle hibernated process correct
Do not GC hibernated process from other processes
Fix check_process_code() on hibernated process
|
|
* john/erts/fix-zombie-tcp-ports/ERL-430/OTP-14441:
Unconditionally clear IO buffers on send/shutdown errors
|
|
OTP-14451
|
|
|
|
|
|
|
|
* lars/xmerl/fragmented-xml-directive/OTP-14430:
[xmerl] Update version
[xmerl] Add test cases
[xmerl] Fix endDocument bug in output backends
[xmerl] Fix fragmented xml directive bug and replace ets table
|
|
* lukas/erts/restore-sigterm-default/OTP-14418:
erts: Add undocumented option to do default SIGTERM
|
|
* rickard/purge-hibernated:
Update testcase to check that purge handle hibernated process correct
Conflicts:
erts/emulator/test/code_SUITE.erl
|
|
|
|
* rickard/purge-hibernated:
Do not GC hibernated process from other processes
Fix check_process_code() on hibernated process
Conflicts:
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/erl_gc.c
erts/emulator/beam/erl_process.h
|
|
|
|
|
|
This fixes a bug where a send/shutdown error on an active-mode socket results
in the port never being properly closed.
|
|
|
|
|
|
* Fix problem of unexpected endDocument in the old_dom and
simple output backends
|
|
* Fix continuation bug if the xml directive is fragmented
* Replace the ENTITY ets table with a map
|
|
This is a stopgap measure before the release of OTP-20 where
that makes it possible for the user to make the vm not do
anything with SIGTERM and instead rely on the OS default.
To enable this behaviour the user should set the environment
variable ERL_ZZ_SIGTERM_KILL="true".
|
|
|
|
|
|
* hans/inets/ftp_recv_chunk_close/OTP-14391:
inets: add testcase to ftp_SUITE Try doing three consecutive chunked receive with some changed timing in the ending sequence
inets: Try fix ftp recv_chunk timing issue
|
|
removed ct:pal call in ssl_connection
|
|
|
|
Try doing three consecutive chunked receive with some changed timing in the ending sequence
|
|
|
|
|
|
|
|
* ingela/fix-inets-releasnote:
inets: Add missing release note
|
|
* hasse/dialyzer/fix_unknown_types/OTP-14368:
dialyzer: Fix a bug regarding unknown types
|
|
* rickard/relnote-fix/OTP-14363:
Fix release note for OTP-14290
|
|
* mikpe/erts-erl_mseg-bad-cache-indexing/OTP-14360:
erl_mseg.c: don't use invalid indices in - > cache_powered_node[]
|
|
|
|
Since commit 12b3790 Dialyzer has not reported unknown types.
|
|
|
|
|
|
|
|
|
|
* rickard/sigterm/OTP-14358:
Do not ignore SIGTERM when VM has been started with +Bi
|
|
|
|
|
|
|
|
|
|
maint-19
* kellymclaughlin/crypto/aes_cfb_128/PR-1393/OTP-14313:
Fix bug with AES CFB 128
Demonstrate the bug with AES CFB 128 encryption
|
|
into maint-19
* raimo/file-read_file-leaks-file-descriptors/ERL-383/OTP-14308:
Close FD after trying to open a directory
|