aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2010-08-31Fix anomalies in epmd not yet reported as security issuesPatrik Nyblom
Use erts_(v)snprintf to ensure no buffer overruns in debug printouts. Disallow everything except port and name requests from remote nodes. Disallow kill command even from localhost if alive nodes exist. -relaxed_command_check when starting epmd returns the possibility to kill this epmd when nodes are alive (from localhost). Disallow stop command completely except if -relaxed_command_check is given when epmd was started. Environment variable ERL_EPMD_RELAXED_COMMAND_CHECK can be set to always get -relaxed_command_check.
2010-08-31Remove two buffer overflow vulnerabilities in EPMDPatrik Nyblom
2010-08-31Remove all support for ancient EPMD protocolPatrik Nyblom
2010-08-31Remove very old protocol from EPMDPatrik Nyblom
2010-08-31Merge branch 'rickard/cpu-info-unbind/8765' into devRickard Green
* rickard/cpu-info-unbind/8765: Fix erroneous error reports about unbind failure
2010-08-31Fix erroneous error reports about unbind failureRickard Green
On platforms where binding of schedulers is not supported, numerous error reports on the form "Scheduler <N> failed to unbind from cpu -1: enotsup" were erroneously issued. This bug was introduced in the 'dev' branch before R14B (commit 1b273b618002d65159453fdfb9520a9476e4423a). That is, the bug has never been seen in a released runtime system. Reported-By: Tuncer Ayaz
2010-08-30Fix variable name in spawn/4 docTuncer Ayaz
ArgumentList -> Args
2010-08-30Merge branch 'pan/ets_binary_overhead/OTP-8762' into devPatrik Nyblom
* pan/ets_binary_overhead/OTP-8762: Remove binary overhead counter from ets objects
2010-08-30Merge branch 'sverker/NIF-64bit-integers/OTP-8746' into devPatrik Nyblom
* sverker/NIF-64bit-integers/OTP-8746: Make windows 64bit types be declared more consistently Teach Windows about the int64 functions NIF doc official support note NIF 64-bit integer support
2010-08-30Merge branch 'sverker/win-virtualization-off/OTP-7405' into devPatrik Nyblom
* sverker/win-virtualization-off/OTP-7405: Teach XP to ignore virtualization part of manifest Turn off windows "virtualiztion"
2010-08-30Merge branch 'egil/R14A/binary-gc-wrap/OTP-8730' into devPatrik Nyblom
* egil/R14A/binary-gc-wrap/OTP-8730: Increase vheap counter to Uint64 Fix wrapping in next vheap calculation
2010-08-30Merge branch 'pan/local_univ_time_bsd/OTP-8580' into devPatrik Nyblom
* pan/local_univ_time_bsd/OTP-8580: Teach erl_time_sup to handle timezones w/o DST on FreeBSD as on other platforms
2010-08-30Merge branch 'pan/list_to_float/OTP-7178' into devPatrik Nyblom
* pan/list_to_float/OTP-7178: Teach Unix sys_float.c to ignore underflow in list_to_float and return 0.0
2010-08-30Merge branch 'rickard/cpu-info/OTP-8765' into devRickard Green
* rickard/cpu-info/OTP-8765: Initialize environment functionality after thread lib Fix faulty assertions Implement automatic detection of CPU topology on Windows Make it possible to reread and update detected CPU information
2010-08-30Initialize environment functionality after thread libRickard Green
An assertion failed due to the thread library not being initialized when initializing an rwmutex. This was however harmless.
2010-08-30Fix faulty assertionsRickard Green
2010-08-30Implement automatic detection of CPU topology on WindowsRickard Green
The CPU topology is now automatically detected on Windows systems with less than 33 logical processors. The runtime system will now, also on Windows, by default bind schedulers to logical processors using the 'default_bind' bind type if the amount of schedulers is at least equal to the amount of logical processors configured, binding of schedulers is supported, and a CPU topology is available at startup.
2010-08-27Fix SSL build failure when building in minimal source treeRickard Green
Building in a source tree without prebuilt platform independent build results failed on the SSL examples when building on Windows.
2010-08-27Fix SSL build failure when building in minimal source treeRickard Green
Building in a source tree without prebuilt platform independent build results failed on the SSL examples when cross building. This has been solved by not building the SSL examples during a cross build.
2010-08-24Merge branch 'rickard/nptl-configure/OTP-8774' into devRickard Green
* rickard/nptl-configure/OTP-8774: Removed unused define Fix propagation of nptl info
2010-08-24Merge branch 'rickard/erts-poll-race/OTP-8773' into devRickard Green
* rickard/erts-poll-race/OTP-8773: Fix race in erts_poll()
2010-08-20Fix race in erts_poll()Rickard Green
A race condition in erts_poll() could cause delay of poll for I/O.
2010-08-20Merge branch 'ms/suppress-epmd-startup-message' into devBjörn Gustavsson
* ms/suppress-epmd-startup-message: epmd: suppress startup message OTP-8775
2010-08-20Merge branch 'bjorn/solaris-fp-exception' into devBjörn Gustavsson
* bjorn/solaris-fp-exception: Solaris/x86: Handle floating point exceptions properly in driver threads
2010-08-20Merge branch 'bjorn/remove-elib_malloc/OTP-8764' into devBjörn Gustavsson
* bjorn/remove-elib_malloc/OTP-8764: erts: Remove broken elib_malloc erts: Remove the unused mem_drv driver erts: Remove stray pre-ISO-C compatibility macros erts: Remove unused decl.h
2010-08-19Removed unused defineRickard Green
2010-08-19Fix propagation of nptl infoRickard Green
2010-08-19Merge branch 'rickard/fix-faulty-assert/OTP-8759' into devRickard Green
* rickard/fix-faulty-assert/OTP-8759: Fix faulty no_empty_run_queues assertion
2010-08-19Remove binary overhead counter from ets objectsPatrik Nyblom
As the overhead counter got larger and never really was needed in ets objects, I removed them. A few stray comments of XXX:PaN type from halfword dev removed in the process.
2010-08-19Merge branch 'hb/type_reference/OTP-8733' into devHans Bolinder
* hb/type_reference/OTP-8733: reference() substituted for ref() in docs
2010-08-18Make it possible to reread and update detected CPU informationRickard Green
Calling erlang:system_info/1 with the new argument 'update_cpu_info' will make the runtime system reread and update the internally stored CPU information. For more information see the documentation of erlang:system_info(update_cpu_info).
2010-08-17Solaris/x86: Handle floating point exceptions properly in driver threadsBjörn Gustavsson
On Solaris/x86, the floating point exceptions bits seems to be propagated to child threads, so if scheduler threads use floating points exceptions, also driver threads will have floating points exception enabled. The problem is that erts_thread_init_float() has not been called for driver threads, and because of that matherr() will crash when called. Fix matherr() so that it will work even if erts_thread_init_float() has not been called. This fix was suggested by Mikael Pettersson.
2010-08-17erts: Remove broken elib_mallocBjörn Gustavsson
elib_malloc is an alternate memory allocator that is no longer possible to build.
2010-08-17erts: Remove the unused mem_drv driverBjörn Gustavsson
The mem_drv driver was only useful when elib_malloc was active.
2010-08-17erts: Remove stray pre-ISO-C compatibility macrosBjörn Gustavsson
A long time ago, the Erlang run-time system could be build with pre-ANSI/ISO-C (K&R) C compilers, but that is no longer possible. Remove the remaining uses of the compatibility macros that made it possible that possible.
2010-08-14erts: Remove unused decl.hBjörn Gustavsson
The header file erts/emulator/beam/decl.h is no longer used.
2010-08-13fix hipe_bifs_alloc_data_2 to avoid "Yikes!" warningMikael Pettersson
It's been reported that HiPE-enabled Erlang VMs running on BSD systems sometimes generate messages like Yikes! erts_alloc() returned misaligned address 0x8016a512c These originate from hipe_bif0.c:hipe_bifs_alloc_data_2(). A native code module has an associated data area of some size and alignment. In the case where the size is zero, the alignment is irrelevant, but the allocation BIF checks it anyway. The warning then triggers on systems where malloc(0) returns blocks with less alignment than we (erroneously) expected. The fix is to simply skip the allocation in this case and return NULL. The loader won't actually use the address in this case so that's safe. This is also an optimization since it avoids allocating memory that cannot be used, and it avoids fragmenting the system heap with useless tiny blocks. A second problem is that the warning message failed to identify its origin. Fixed by prefixing the message by the BIF's name rather than the silly Yikes! string. Tested and confirmed to solve the original reporter's problem.
2010-08-12Increase vheap counter to Uint64Björn-Egil Dahlberg
This will reduce the risk of integer wrapping in bin vheap counting. The vheap size series will now use the golden ratio instead of doubling and fibonacci sequences. OTP #8730
2010-08-12Fix wrapping in next vheap calculationBjörn-Egil Dahlberg
OTP #8730
2010-08-12Merge branch 'bjorn/remove-obsolete-driver-support/OTP-8758' into devBjörn Gustavsson
* bjorn/remove-obsolete-driver-support/OTP-8758: Remove obsolete/driver.h and the associated functionality
2010-08-11Fix faulty no_empty_run_queues assertionRickard Green
For a short period of time no_empty_run_queues may have been increased twice for a specific run queue. Two assertions did not take this into account.
2010-08-11Make windows 64bit types be declared more consistentlyPatrik Nyblom
2010-08-11Remove obsolete/driver.h and the associated functionalityBjörn Gustavsson
The obsolete/driver.h header file has been obsolete since R8B. Remove that file, along with obsolete thread APIs for drivers in the emulator and the test cases.
2010-08-10Teach Windows about the int64 functionsPatrik Nyblom
2010-08-10Merge branch 'rickard/trailing-data-alignment/OTP-8754' into devRickard Green
* rickard/trailing-data-alignment/OTP-8754: Align trailing message data for all types of structures
2010-08-10Merge branch 'rickard/ethread-rewrite/OTP-8544' into devRickard Green
* rickard/ethread-rewrite/OTP-8544: Rewrite ethread library
2010-08-10Rewrite ethread libraryRickard Green
Large parts of the ethread library have been rewritten. The ethread library is an Erlang runtime system internal, portable thread library used by the runtime system itself. Most notable improvement is a reader optimized rwlock implementation which dramatically improve the performance of read-lock/read-unlock operations on multi processor systems by avoiding ping-ponging of the rwlock cache lines. The reader optimized rwlock implementation is used by miscellaneous rwlocks in the runtime system that are known to be read-locked frequently, and can be enabled on ETS tables by passing the `{read_concurrency, true}' option upon table creation. See the documentation of `ets:new/2' for more information. The ethread library can now also use the libatomic_ops library for atomic memory accesses. This makes it possible for the Erlang runtime system to utilize optimized atomic operations on more platforms than before. Use the `--with-libatomic_ops=PATH' configure command line argument when specifying where the libatomic_ops installation is located. The libatomic_ops library can be downloaded from: http://www.hpl.hp.com/research/linux/atomic_ops/ The changed API of the ethread library has also caused modifications in the Erlang runtime system. Preparations for the to come "delayed deallocation" feature has also been done since it depends on the ethread library. Note: When building for x86, the ethread library will now use instructions that first appeared on the pentium 4 processor. If you want the runtime system to be compatible with older processors (back to 486) you need to pass the `--enable-ethread-pre-pentium4-compatibility' configure command line argument when configuring the system.
2010-08-07Align trailing message data for all types of structuresRickard Green
Alignment of trailing data in messages has been adjusted. This in order to be able to pass data of any type as trailing data in the future.
2010-08-04epmd: suppress startup messageMichael Santos
Running transient distributed Erlang nodes can generate a large number of informational messages to syslog. Modify epmd to log the startup message only when passed the debug switch. Reported-By: Sergey Samokhin
2010-07-30Fix libm linking with --as-needed flagBjörn-Egil Dahlberg
When building with "--as-needed" linker flags on Linux the build will fail. This has now been fixed.