Age | Commit message (Collapse) | Author |
|
* sverk/packet_size-http/OTP-9389:
erts: Remove truncation of http packet parsing and return error instead
honor packet_size for http packet parsing to fix OTP-9389
|
|
|
|
* bjorn/erts/code-loading/OTP-9720:
BEAM loader: Fix bug that allowed loading of more than two versions
Add code_SUITE:versions/1
|
|
In commit b67d3e5447f4b2bca3ed92f3db84adb3f79f9b16 (which cleaned up
handling of error reasons), the test of the return value from
beam_make_current_old() in insert_new_code() was not updated, which
meant that it never was true and any number of versions of code could
be loaded for a module.
|
|
We did not have test case that ensures that the loader refuses to
load a module if there already exists old code for the module.
|
|
|
|
* rickard/test-fixes-r15b:
Unlink test-proc instead of ensuring that it has died before stopping node
|
|
Unlink the test-proc instead of monitoring it and waiting for it to
terminate before stopping the node. This since an unlink is faster,
simpler and in this case more stable.
|
|
* rickard/test-fixes-r15b:
Ensure test-proc is dead before stopping node
|
|
|
|
* rickard/test-fixes-r15b:
Give slow machines more time to compute result
Allow more CPU time in waiting test-cases
Skip thread_mseg_alloc_cache_clean() when no mseg_alloc
|
|
|
|
|
|
* sverk/big-float-cmp-bug:
erts: Fix bug in large big/float compare
|
|
* sverk/ppc-hibernate-fix:
erts: Fix hipe bug in hibernate on PowerPC
|
|
This is a slight modification of previous commit by Steve Vinoski
For backward compatibility of old users of decode_packet, I think it's enough
to return error instead of keeping the old line truncation behaviour.
|
|
Thanks Tuncer Ayaz
|
|
sendfilev is a richer API which allows us to
do non blocking TCP on solaris. The normal
sendfile API seems to have some issue with
non blocking sockets and the return value of
sendfile.
|
|
|
|
Allow applications to use a packet_size setting on a socket to control
acceptable HTTP header line length. This gives them the ability to
accept HTTP headers larger than the default settings allow, but also
lets them avoid DOS attacks by accepting header lines only up to
whatever length they wish to allow.
Without this change, if an HTTP request/response line or header
arrives on a socket in http, http_bin, httph, or httph_bin parsing
mode, and the request/response line or header is too long to fit into
a default inet_drv buffer of 1460 bytes, an unexpected error
occurs. These problems were described and discussed on
erlang-questions in June 2011 in this thread:
http://erlang.org/pipermail/erlang-questions/2011-June/059563.html
In the original code, no buffer reallocation occurs to enlarge the
buffer, even if packet_size or line_length are set in a way that
should allow the HTTP data to be parsed properly. The only available
workaround was to collect headers and parse them using
erlang:decode_packet, but that approach has drawbacks such as having
to collect all HTTP header data before it can be handed to
decode_packet for correct parsing, and also requiring each and every
Erlang web server developer/maintainer to add the workaround to his or
her web server.
Change the packet parser to honor the packet_size setting for HTTP
parsing. If packet_size is set, and an HTTP request/response or header
line exceeds the default 1460 byte TCP buffer limit, return an
indication to tcp_remain that it should realloc the buffer to enlarge
it to packet_size. Also fix the HTTP parsing code to properly honor
line_length by truncating any HTTP request/response or header lines
that exceed that setting.
For backward compatibility, default behavior is unchanged; if an
application wants to be able to accept long HTTP header lines, it must
set packet_size to an appropriate value. Buffer reallocation occurs
only when needed, so the original default buffer size in the code is
still the default.
Make the line mode parsing honor packet_size as well, for consistency.
Add new regression tests to the emulator decode_packet suite and also
to the kernel gen_tcp_misc suite.
The documentation for packet_size in inet:setopts/2 is already
sufficient.
Many thanks to Sverker Eriksson for his guidance on how to best fix
this bug and also for reviewing a number of patch attempts prior to
this one.
|
|
* rickard/generic-thr-queue/OTP-9632:
Fix handle_async_ready_clean()
|
|
|
|
* sverk/deprecate-nif-reload:
erts: Deprecate the NIF reload mechanism
OTP-9771
|
|
* bjorn/test-cases:
lcnt_SUITE: Be kind to slow machines
crypto_SUITE: Reinstate what was "lost in translation"
fileTransferSUITE: Cope with missing/broken crypto application
sensitive_SUITE: Fix spuriously failing recv_trace/1
eprof_SUITE: Cope with fast computers and bad time measurements
cover_SUITE: Cope with missing/broken crypto application
otp_SUITE: Write log files about undefined functions and so on
|
|
The second function erts_unblock_fpe is not needed in here.
|
|
Bug caused faulty result (big_SUITE:big_float_1)
and an unhandled floating point exception.
|
|
Only three messages are guaranteed to be in message queue of the
tracer process. The second {trace_delivered,_,_} message may or
may not be there.
|
|
|
|
* ctime were never defined for invalid file handles
* fix epoch <-> fileinfo conversions
|
|
|
|
|
|
Conflicts:
erts/emulator/drivers/win32/win_efile.c
|
|
|
|
|
|
First stage in utc-time for prim_file.
|
|
|
|
Almost all uses of the 'long' datatype is removed from VM and tests
Emulator test now runs w/o drivers crashing
Nasty abs bug fixed in VM as well as type errors in allocator debug functions
Still one allocator test that fails, domain knowledge is needed to fix that.
Fix type inconsistency in beam_load causing crashes
|
|
Removed symbolic links from repository.
|
|
Can still not setup -a, but cerl works.
|
|
|
|
Still does not run, just compiles.
|
|
* ta/sendfile/OTP-9240: (31 commits)
Add sendfile server printouts
Skip recv/send during tests for fallback platforms
Remove header/trailer support
Remove windows implementation
Expand sendfile documentation
Only allow tcp sockets as target for sendfile
Move sendfile api to file module
Preliminary work on header/trailer
Use free_sendfile explicitly for non-async
Remove debug printouts
Add tests for send/recv/sendfile interactions
Remove tests for file_server sendfile
sendfile caller now has to be the controlling_process
Remove support for file_server, sendfile has to be raw
Set chunk size to 3 GB
Change type of fd to be ErlDrvEvent
Add ifdef's for HAVE_SENDFILE
Fix freebsd support for sendfile
Change nbytes to 64 bit
Implement ignorefd for TCP
...
|
|
Commit 8781932b3b8769b6f208ac7c00471122ec7dd055 broke
erlang:system_info(system_version) in the non-SMP emulator so
that it would typically dump core.
"rq:%d" was removed from the format string for erts_printf(),
but the corresponding argument in the argument list was not removed,
which ultimately caused "kernel-poll:%s" to be passed an integer
(typically 0).
|
|
Since the API for headers/trailers seem to be very awkward to
work with when using non-blocking io the feature is dropped
for now. See unix_efile.c for more details.
|
|
|
|
Have to figure out how to represent progress in header writing when
using non-blocking, not sure how to do this.
|
|
This is needed because aync job will not call free_sendfile
if there is an async_ready callback.
|
|
|
|
It is not possible to use the maximum size_t/off_t for the chunks
as that causes sendfile to return einval. 3GB seems to work on all
*nix platforms.
|
|
|