Age | Commit message (Collapse) | Author |
|
On macOS 10.13 (High Sierra), disksup cannot grab information
for any disks that use the new APFS file system. The reason
is that the invocation of /bin/df explicitly limits the
type of file systems to show:
/bin/df -i -k -t ufs,hfs
Add 'apfs' to also look at disks with APFS:
/bin/df -i -k -t ufs,hfs,apfs
That also works on older versions of macOS.
An alternative solution would be to use the -l flag to only
show local file systems. However, that would mean that USB
memory sticks would also show up, and it might not be desirable
to monitor them.
https://bugs.erlang.org/browse/ERL-461
|
|
|
|
|
|
Update compiler documentation and remove superfluous erlc flags.
|
|
* jrobhoward/os_mon/fix-freebsd_get_os_wordsize/PR-1039/OTP-13601:
Fix memsup:get_os_wordsize() on 64-bit Linux PPC
os_mon: Test wordsize of memsup:get_os_wordsize/0
Fix memsup:get_os_wordsize() on 64-bit FreeBSD
|
|
|
|
* mururu/os_mon/cpu-sup-osx/PR-1049/OTP-13597:
os_mon: Implement cpu_sup:util/0,1 on OSX
|
|
|
|
cpu_sup:util/0,1 works on OSX as well.
|
|
|
|
The documentation correctly states that the Busy and NonBusy components
in the return value of cpu_sup:util/1 are not tuples but list of tuples:
"If the detailed option is given, this is a *list* of {State, Share}
tuples"
|
|
|
|
|
|
* jh/freebsdcpu/OTP-12796:
os_mon: Comply with C89 standard
os_mon: Update docs for FreeBSD
os_mon: Implement cpu_sup:util/0,1 for FreeBSD
|
|
Authors: Wasif Malik and Johannes Huning
|
|
|
|
* aw/native-cpu_sup/OTP-12730:
erts: Fix configure.in
os_mon: rename send() to sendi() in cpu_sup.c
os_mon: cpu_sup should use native sysctl/libkvm calls on BSD
|
|
Do not crash with badmatch when integer part of loadavg has more than 2
digits.
|
|
This avoids forking off with os:cmd every time we just want to
collect the load averages. riak does this every second, which
results in a lot of unnecessary load.
|
|
I noticed that running an R16B03-1 node on an overloaded host produced
log entries like the following ones:
```
2014-08-22 21:52:31 =ERROR REPORT====
Error in process <0.24112.3> on node '[email protected]' with exit value: {{case_clause,{data,4711}},[{cpu_sup,get_uint32_measurement,2,[{file,"cpu_sup.erl"},{line,227}]},{cpu_sup,measurement_server_loop,1,[{file,"cpu_sup.erl"},{line,585}]}]}
```
```
===== ALIVE Fri Aug 22 21:50:14 CEST 2014
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
===== ALIVE Fri Aug 22 22:07:46 CEST 2014
```
I performed a code inspection on the `cpu_sup` module and I concluded
that the `case_clause` error shows a small issue in the `cpu_sup`
module, that happens when the port used in `cpu_sup` is slow to start
- as it may happen on an overloaded node.
The `cpu_sup` `gen_server` process keeps in its state the pid of an
unlinked process (called "measurement server" - see `cpu_sup:init/1`),
in order to do dirty stuff (e.g. reading the filesystem, running OS
commands) and start_link-ing & managing the connected process to a
port (called "port server" - see `measurement_server_init/0`). So the
process organization looks like this:
```
cpu_sup - measurement server - port server - port
```
When the measurement server start_links the port server (see
`port_server_start/0`) it sends a `{self(), ?ping}` message to it and
expects an answer within 6s, otherwise it returns `{error, timeout}`
rather than the pid. This has two issues:
* The measurement server keeps `{error, ...}` in its state as if it
were a pid - that makes no sense;
* A late `{Pid, {data,4711}}` response may arrive in the mailbox of
the measurement server, that will believe it to be a request to be
processed, causing a `case_clause` error.
This commit teaches the measurement server to check the success of the
initialization of the port server by matching on the return value of
`port_server_start/0` (renamed to `port_server_start_link/0` for the
sake of clarity) in order to fail earlier and with an error clearer
than `{case_clause,{data,4711}}`. In such case I expect the
measurement server to be restarted by the `cpu_sup` `gen_server` (see
`handle_call/3`) - as before.
BTW It is not clear to me when the `handle_info({'EXIT', _Port,
Reason}, State)` may be called (the `cpu_sup` `gen_server` does not
link to the measurement server) but I am leaving it.
|
|
|
|
On embedded (Linux) systems the "df" program is very often provided by
the Busybox (or Toolbox) project. This version does not provide the "-l"
option (for displaying only local filesystems) used in disksup.erl.
To make disksup work on these embedded platforms, this patch adds a new
application parameter 'disksup_posix_only', to make diskup use only
options defined in the POSIX standard:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/df.html
|
|
Most dependencies introduced are exactly the dependencies to other
applications found by xref. That is, there might be real dependencies
missing. There might also be pure debug dependencies listed that
probably should be removed. Each application has to be manually
inspected in order to ensure that all real dependencies are listed.
All dependencies introduced are to application versions used in
OTP 17.0. This since the previously used version scheme wasn't
designed for this, and in order to minimize the work of introducing
the dependencies.
|
|
Fix the appup files of runtime_tools and os_mon with wildcard
version regexps. inets, odbc and ssh regexps have been corrected
to match as originally intended.
|
|
|
|
Application memsup should be calculating free memory using the
speculative pages, in the same manner that the Activity Monitor and top
programs on OS X do. In addition, correct page size to 4096, based on
verification of available memory between top, vm_stat and Activity
Monitor.
|
|
|
|
Use 'df -k -l' to query OpenBSD about diskspace on local disks.
Same reasoning as for FreeBSD - additional filesystems without
listing them all.
|
|
Use 'df -k -l' to query FreeBSD about diskspace on local disks.
Previously 'df' -k -t ufs' was used but this will not handle zfs
disks. Just use '-l' instead of listing potential filesystems.
|
|
|
|
|
|
This is to allow space in the path.
|
|
* sm/fix-disksup-susv3/OTP-10945:
This patch fixes disksup:get_disk_data for SUSv3, specifically OS X ML
|
|
On OS X Mountain Lion, the default output of df command includes iNode
used and iNodes free, which apparent what SUSv3 specifies. This breaks
the current parse logic and reports incorrect results. This patch adds
support for the new format and ensures older versions of OS X produce
this format by adding the -i switch (which is now the default). Adding
support for this new format rather than changing df output as we'll
presumably see this on other platforms eventually.
|
|
|
|
|
|
* nox/enable-silent-rules/OTP-10726:
Implement ./otp_build configure --enable-silent-rules
|
|
With silent rules, the output of make is less verbose and compilation
warnings are easier to spot. Silent rules are disabled by default and
can be disabled or enabled at will by make V=0 and make V=1.
|
|
|
|
Conflicts:
lib/diameter/autoconf/vxworks/sed.general
xcomp/README.md
|
|
|
|
|
|
OTP-10106
OTP-10107
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* at/os_mon_dragonfly_support:
Add support for DragonFlyBSD to memsup
OTP-9217
|