Stavros Aronis | 27 May 13:40 2015
Picon

Call with a tuple as a module succeeds in Erlang 18 RC2

Hello!

It seems that there are some leftovers from the parameterized modules support in the compiler for Erlang 18 RC2 (and also earlier Erlang versions). In the example below, even though the compiler emits warnings when a tuple is used as a module name, the code executes without error.

Requesting HiPE compilation restores the 'correct' behaviour (an error is raised).

Regards,

Stavros

---

$ cat tuple_as_module.erl 
-module(tuple_as_module).

-export([test/0, action/2]).

test() ->
  P = {?MODULE, [1,2,3]},
  {P:action(head),
   P:action(tail)}.

action(head, {?MODULE, List}) ->
  hd(List);
action(tail, {?MODULE, List}) ->
  tl(List).
$ erl
Erlang/OTP 18 [RELEASE CANDIDATE 2] [erts-7.0] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.0  (abort with ^G)
1> c(tuple_as_module).
tuple_as_module.erl:7: Warning: invalid module and/or function name; this call will always fail
tuple_as_module.erl:8: Warning: invalid module and/or function name; this call will always fail
{ok,tuple_as_module}
2> tuple_as_module:test().
{1,[2,3]}
3> c(tuple_as_module, [native]).
tuple_as_module.erl:7: Warning: invalid module and/or function name; this call will always fail
tuple_as_module.erl:8: Warning: invalid module and/or function name; this call will always fail
{ok,tuple_as_module}
4> tuple_as_module:test().      
** exception error: bad argument
_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs
Miroslav Urbanek | 22 May 00:42 2015

Freeze in re:run

Hi,

I'm using Erlang 17.5 and I'm experiencing freezes in re:run that take
tens of seconds. I've isolated the problematic part into the following
code:

----
#!/usr/bin/env escript

log(Term) ->
    {_ , {Hour, Minute, Second}} = calendar:now_to_universal_time(os:timestamp()),
    io:format("~2..0w:~2..0w:~2..0w ~p~n", [Hour, Minute, Second, Term]).

test(Filename) ->
    {ok, IoDevice} = file:open(Filename, [binary, read]),
    {ok, Data} = file:read(IoDevice, 1048576),
    Regexp = "(?i)(?m)(?s)(?U)(?<=\n)--(?|.*^content-disposition:(?:(?!\n\\S).)*filename=\"[^\"]*\\.([^\".]*)\".*|.*^content-type:(?:(?!\n\\S).)*name=\"[^\"]*\\.([^\".]*)\").*\n\n",
    re:run(Data, Regexp, [report_errors]).

main([Filename]) ->
    spawn_link(fun Fun() ->
                       log(heartbeat),
                       timer:sleep(1000),
                       Fun()
               end),
    log(test(Filename)).
----

Processing the complex regexp above takes about 50 seconds for my test
data. Sometimes, the whole Erlang VM freezes for several seconds. The
output then looks like this:

----
$ ./test.erl test.eml
18:27:48 heartbeat
18:27:49 heartbeat
18:27:50 heartbeat
18:27:51 heartbeat
18:27:52 heartbeat
18:27:53 heartbeat
18:27:54 heartbeat
18:27:55 heartbeat
18:27:56 heartbeat
18:27:57 heartbeat
18:27:58 heartbeat
18:27:59 heartbeat
18:28:00 heartbeat
18:28:01 heartbeat
18:28:02 heartbeat
18:28:03 heartbeat
18:28:04 heartbeat
18:28:05 heartbeat
18:28:06 heartbeat
18:28:07 heartbeat
18:28:08 heartbeat
18:28:36 heartbeat
18:28:36 nomatch
----

The VM froze between 18:28:08 and 18:28:36. The manual page re(3)
states that "re:run always give control back to the scheduler of
Erlang processes at intervals that ensures the real time properties of
the Erlang system". I believe this is a bug, because re:run clearly
didn't give control back to the scheduler during the interval above.

Why does it happen? Is there any option to limit the number of time VM
spends in re:run?

The program and the data file can be downloaded here:

http://miroslavurbanek.com/re.tgz

Thanks,
Miro
_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs

Soup | 21 May 18:48 2015
Picon

Segmentation Fault in check_process_code / erts_garbage_collect

This topic, or one very similar, appears to have been discussed before in the erlang-patches mailing list thread titled "erlang node crashes in erts_gc_after_bif_call" from October, 2012 (http://erlang.org/pipermail/erlang-patches/2012-October/003072.html). No clear resolution was reached on this thread, and I am currently dealing with it in production systems, so I have decided to address this mailing list.

Please see the bottom of the email for system specification, as I believe this to be largely unrelated (except possibly for multithreading).

Please feel free to request any pertinent information I may have left out, or to make suggestions to improve future bug reports. I don't often submit bug reports, and am not at all familiar with Erlang/OTP's particular practices in this regard.

## Scenario and Error ##

The error is a segmentation fault arising out of the erts_garbage_collect and check_process_code functions.

The scenario is as follows:
1) You must be hot-loading a module (in my case, this module is dynamically generated) periodically.
2) You must have non-suspended processes active in the module you are hot-loading while it is being loaded (though not necessarily *in* the code of the module; may be using terms from the module or having function references ot the module).
3) Purging of the old version of the module must be happening at the same time as garbage collection. (in my case, the garbage collection is explicit because of the use of large binary terms with relatively few reductions; that does not appear to be the case in the situation laid out in the previously mentioned thread).

It appears, at least to my untrained eye, that garbage collection sweeps can occur at the same time as code purging, and that this seems to happen without multithreading protection. My reason for this suspicion is that in my production systems I began receiving one of two segmentation faults: one occuring in the function check_process_code (of erts/emulator/beam/beam_bif_load.c) and erts_garbage_collect (of erts/emulator/beam/erl_gc.c). Most of the time *in production*, the segmentation fault occured in the check_process_code function. Only sometimes did it appear to be coming from erts_garbage_collect.

## Reproducing the Error ##

It took a while, but I did ultimately manage to create an app which reliably produces this error (insofar as I can tell). Please see the app here: https://github.com/fauxsoup/erlang-sigsegv

There are some apparent differences from what I was observing in production, but this could possibly be related to differences between my production environment and my testing environment (which are non-trivial), and potentially differences between my minimal test case and the production service. Please see the bottom of this email for pertinent details about both environments.

For testing, and because my production deployment of Erlang does not include debug symbols, I recompiled Erlang/OTP 17.4 with the flags "-g -O2" to produce debug symbols and prevent aggressive optimizations which may distort the stacktrace.

The primary difference between the *results* of the error in production versus testing is that the segmentation fault in testing always comes from erts_garbage_collect. I have not at all been able to produce a test result in which the segmentation fault occured in check_process_code using the minimal test case code.

Another difference, which I believe to be caused by the inclusion of debug symbols, is that erts_garbage_collect appears earlier in the backtrace in testing, and that the actual segmentation fault appears to come from the function sweep_one_area (erl_gc.c again). My assumption is that the optimization and lack of debug symbols in the production system merely obfuscated the origin of the segmentation fault there.

## The Backtrace ##

Included here for your convenience (also available in test case README):

Program received signal SIGSEGV, Segmentation fault.
                                                    [Switching to Thread 0x7ffff3b3e700 (LWP 26743)]
sweep_one_area (n_hp=0x7fffe8862028, n_htop=0x7fffe8862c48, src=src <at> entry=0x7fffe9ec2028 "", src_size=src_size <at> entry=600224) at beam/erl_gc.c:1816
1816 mb->base = binary_bytes(*origptr);
(gdb) bt
#0  sweep_one_area (n_hp=0x7fffe8862028, n_htop=0x7fffe8862c48, src=src <at> entry=0x7fffe9ec2028 "", src_size=src_size <at> entry=600224) at beam/erl_gc.c:1816
#1  0x0000000000527ea0 in do_minor (nobj=1, objv=0x7ffff3b3dd50, new_sz=121536, p=0x7ffff5c80800) at beam/erl_gc.c:1160
#2  minor_collection (recl=<synthetic pointer>, nobj=1, objv=0x7ffff3b3dd50, need=0, p=0x7ffff5c80800) at beam/erl_gc.c:876
#3  erts_garbage_collect (p=0x7ffff5c80800, need=need <at> entry=0, objv=objv <at> entry=0x7ffff3b3dd50, nobj=nobj <at> entry=1) at beam/erl_gc.c:450
#4  0x000000000052877b in erts_gc_after_bif_call (p=0x7ffff5c80800, result=140736302308346, regs=<optimized out>, arity=<optimized out>) at beam/erl_gc.c:370
#5  0x0000000000571951 in process_main () at beam/beam_emu.c:2787
#6  0x00000000004a9a70 in sched_thread_func (vesdp=0x7ffff51cc8c0) at beam/erl_process.c:7743
#7  0x00000000006056fb in thr_wrapper (vtwd=0x7fffffffd9a0) at pthread/ethread.c:106
#8  0x00007ffff704d374 in start_thread () from /usr/lib/libpthread.so.0
#9  0x00007ffff6b8327d in clone () from /usr/lib/libc.so.6

## The Systems ##

PRODUCTION
Erlang/OTP 17.4 (also observed on Erlang R15B01)
Amazon EC2 c3.8xlarge (32 Virtual CPUs, ~64 GB Memory)
Debian Wheezy
uname -a: Linux rtb0.ec2.chitika.net 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2 x86_64 GNU/Linux

TESTING
Erlang/OTP 17.4
Intel Core i5 760 <at> 2.80GHz (4 Logical CPUs, 2 cores IIRC), ~16GB Memory
Arch Linux (up-to-date)
uname -a: Linux diogenes 4.0.1-1-ARCH #1 SMP PREEMPT Wed Apr 29 12:00:26 CEST 2015 x86_64 GNU/Linux
_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs
Peti Gömöri | 21 May 16:13 2015
Picon

cover:analyse_to_file never returns

Hi all,

I faced the following issue when trying to analyse a coverdata collected earlier.
The coverdata file contained a module which was removed (so source and beam not available any more)
Imported the coverdata file and called cover:analyze_to_file(test, "/tmp/test.html", [html]) never returned and resulted in the following error report

    %% =ERROR REPORT==== 20-May-2015::16:13:47 ===
    %% Error in process <0.578.0> with exit value: {undef,[{test,module_info,[compile],[]},{cover,find_source,2,[{file,"cover.erl"},{line,1996}]},{cover,do_parallel_analysis_to_file,6,[{file,"cover.erl"},{line,2139}]}]}

I did not look at the source code of cover yet but this looks like a spawned process crashed and the main loop waiting for it indefinitely

The issue is reproducible (with file attached) on both R16B03-1 and 18-rc1


/Peter
Attachment (cover_issue.erl): application/octet-stream, 1584 bytes
_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs
Rory Byrne | 17 May 14:37 2015

VM locking up 18.0-rc2

Hello,

You can get example code showing this bug from: 

    git clone https://gist.github.com/0b05a793f308044359ab.git

Run the code as follows:

    1> acceptor_pool:start_link().

Then connect to port 7777 on the local machine using any TCP client. For
example, using curl:

    curl http://localhost:7777/

After the first connection, the VM will lock up and look like this:

    1> acceptor_pool:start_link().
    New acceptor started: <0.37.0>
    {ok,<0.36.0>}
    HERE 1
    HERE 2
    New acceptor started: <0.40.0>
    2> 

I've tested this using the current master HEAD 9a81b28 (Wed May 13) on
Linux on single and multi-processor machines (32 bit and 64 bit) and on
FreeBSD.

Notes:

 1. The code works fine using the current maint branch (efbfe96): you can 
    connect multiple times in succession with no problems.

 2. The code works fine if you remove the following print statement from 
    the bottom of acceptor_pool.erl:

        io:format("New acceptor started: ~p~n", [Pid]),

 3. The code works fine if you change the following code in acceptor.erl:

        Self = self(),
        spawn(fun() -> acceptor_pool:create(AcceptorPool, Self) end),

    to:

        ok = acceptor_pool:create(AcceptorPool, self()),

Let me know if you need anything further.

Regards,

Rory
_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs

Richard Carlsson | 15 May 15:32 2015
Picon

Re: Segfault by purging native and reloading beam

cc:ing list.

On Fri, May 15, 2015 at 3:19 PM, Jeremy Heater <jeremy.heater <at> mobile-devices.fr> wrote:
A useful observation maybe: in R16B01 it also always segfaults, and from R16B02 onwards there is the behavior where it only segfaults from time to time (it also happens in 17.1 and 17.4, what I had on hand to test).

2015-05-15 14:18 GMT+02:00 Richard Carlsson <carlsson.richard <at> gmail.com>:
This one was a bit tricky to minimize: you have to load beam code, then remove it fully, then load native, remove it fully again, then reload the beam code. Repeatable every time on plain old R15B03-1 and about one in three times on 18.0.  See example module.

        /Richard

_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs



_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs
Richard Carlsson | 15 May 14:18 2015
Picon

Segfault by purging native and reloading beam

This one was a bit tricky to minimize: you have to load beam code, then remove it fully, then load native, remove it fully again, then reload the beam code. Repeatable every time on plain old R15B03-1 and about one in three times on 18.0.  See example module.

        /Richard
Attachment (test.erl): application/octet-stream, 1750 bytes
_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs
Daniel Goertzen | 14 May 18:17 2015
Picon

18.0-rc2 erlc segfaults building hipe

As the title says, rc2 fails to build. Error output below.  Rc1 does not have a problem.  When I build with libSegFault turned on, "erts_check_next_timeout_time" gets a mention.

My build environment is a 32 bit Gentoo chroot living in 64 bit Kubuntu-15.04.  Erlang is built as part of a larger make process.  My configure line is:

./configure \
        --prefix=/usr/local/ \
        --enable-ethread-pre-pentium4-compatibility \
        --without-javac \
        --disable-hipe \
        --enable-dynamic-ssl-lib \
        --enable-dirty-schedulers \



=== Entering application hipe
make[4]: Entering directory '/device/otp/lib/hipe/misc'
 ERLC   ../ebin/hipe_consttab.beam
/bin/sh: line 1:  9875 Segmentation fault      (core dumped) erlc -W +debug_info +warn_exported_vars +warn_missing_spec +warn_untyped_record -o../ebin hipe_consttab.erl
/device/otp/make/i686-pc-linux-gnu/otp.mk:122: recipe for target '../ebin/hipe_consttab.beam' failed
make[4]: *** [../ebin/hipe_consttab.beam] Error 139
make[4]: Leaving directory '/device/otp/lib/hipe/misc'
/device/otp/make/otp_subdir.mk:28: recipe for target 'opt' failed
make[3]: *** [opt] Error 2
make[3]: Leaving directory '/device/otp/lib/hipe'
/device/otp/make/otp_subdir.mk:28: recipe for target 'opt' failed
make[2]: *** [opt] Error 2
make[2]: Leaving directory '/device/otp/lib'
Makefile:549: recipe for target 'secondary_bootstrap_build' failed
make[1]: *** [secondary_bootstrap_build] Error 2
make[1]: Leaving directory '/device/otp'
Makefile:224: recipe for target 'otp.stamp' failed
make: *** [otp.stamp] Error 2

_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs
Leo Liu | 12 May 08:01 2015
Picon

make install-docs failed

Something breaks `make install-docs' since 2015-04-27 my last successful
build on Mac OSX Yosemite.

make[6]: Nothing to be done for `release_docs_spec'.
/Applications/Xcode.app/Contents/Developer/usr/bin/make 
RELEASE_PATH="/usr/local/unix/erlang/18.0/lib/erlang"   release_docs_spec 
(cd ../../java_src;javadoc -sourcepath . -d ../doc/html/java \
		-windowtitle 'Java-Erlang Interface Library' com.ericsson.otp.erlang)
Loading source files for package com.ericsson.otp.erlang...
Constructing Javadoc information...
Standard Doclet version 1.8.0_31
Building tree for all the packages and classes...
Generating ../doc/html/java/com/ericsson/otp/erlang/AbstractConnection.html...
./com/ericsson/otp/erlang/AbstractConnection.java:211: warning: no  <at> param for e
    public abstract void deliver(Exception e);
                         ^
./com/ericsson/otp/erlang/AbstractConnection.java:216: warning: no  <at> param for msg
    public abstract void deliver(OtpMsg msg);
                         ^
./com/ericsson/otp/erlang/AbstractConnection.java:230: warning: no  <at> param for from
    protected void sendBuf(final OtpErlangPid from, final String dest,
                   ^
./com/ericsson/otp/erlang/AbstractConnection.java:275: warning: no  <at> param for from
    protected void sendBuf(final OtpErlangPid from, final OtpErlangPid dest,
                   ^
./com/ericsson/otp/erlang/AbstractConnection.java:384: warning: no  <at> param for from
    protected void sendLink(final OtpErlangPid from, final OtpErlangPid dest)
                   ^
./com/ericsson/otp/erlang/AbstractConnection.java:421: warning: no  <at> param for from
    protected void sendUnlink(final OtpErlangPid from, final OtpErlangPid dest)
                   ^
./com/ericsson/otp/erlang/AbstractConnection.java:464: warning: no  <at> param for from
    protected void sendExit2(final OtpErlangPid from, final OtpErlangPid dest,
                   ^
./com/ericsson/otp/erlang/AbstractConnection.java:41: warning: empty <p> tag
 * <p>
   ^
./com/ericsson/otp/erlang/AbstractConnection.java:177: warning: no  <at> param for self
    protected AbstractConnection(final OtpLocalNode self, final OtpPeer other)
              ^
./com/ericsson/otp/erlang/AbstractConnection.java:177: warning: no  <at> param for other
    protected AbstractConnection(final OtpLocalNode self, final OtpPeer other)
              ^
./com/ericsson/otp/erlang/AbstractConnection.java:137: warning: no  <at> param for self
    protected AbstractConnection(final OtpLocalNode self, final OtpTransport s)
              ^
./com/ericsson/otp/erlang/AbstractConnection.java:137: warning: no  <at> param for s
    protected AbstractConnection(final OtpLocalNode self, final OtpTransport s)
              ^
Generating ../doc/html/java/com/ericsson/otp/erlang/AbstractNode.html...
./com/ericsson/otp/erlang/AbstractNode.java:272: warning: no  <at> param for cookie
    public String setCookie(final String cookie) {
                  ^
./com/ericsson/otp/erlang/OtpTransportFactory.java:96: warning: no description for  <at> throws
     *  <at> throws IOException
       ^
./com/ericsson/otp/erlang/OtpTransportFactory.java:109: warning: no description for  <at> throws
     *  <at> throws IOException
       ^
./com/ericsson/otp/erlang/OtpTransportFactory.java:120: warning: no description for  <at> throws
     *  <at> throws IOException
       ^
./com/ericsson/otp/erlang/AbstractNode.java:158: warning: no  <at> param for node
    protected AbstractNode(final String node) {
              ^
./com/ericsson/otp/erlang/AbstractNode.java:166: warning: no  <at> param for node
    protected AbstractNode(final String node,
              ^
./com/ericsson/otp/erlang/AbstractNode.java:166: warning: no  <at> param for transportFactory
    protected AbstractNode(final String node,
              ^
./com/ericsson/otp/erlang/AbstractNode.java:174: warning: no  <at> param for name
    protected AbstractNode(final String name, final String cookie) {
              ^
./com/ericsson/otp/erlang/AbstractNode.java:174: warning: no  <at> param for cookie
    protected AbstractNode(final String name, final String cookie) {
              ^
./com/ericsson/otp/erlang/AbstractNode.java:181: warning: no  <at> param for name
    protected AbstractNode(final String name, final String cookie,
              ^
./com/ericsson/otp/erlang/AbstractNode.java:181: warning: no  <at> param for cookie
    protected AbstractNode(final String name, final String cookie,
              ^
./com/ericsson/otp/erlang/AbstractNode.java:181: warning: no  <at> param for transportFactory
    protected AbstractNode(final String name, final String cookie,
              ^
Generating ../doc/html/java/com/ericsson/otp/erlang/GenericQueue.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpAuthException.html...
./com/ericsson/otp/erlang/OtpAuthException.java:34: warning: no  <at> param for s
    public OtpAuthException(final String s) {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpConnection.html...
./com/ericsson/otp/erlang/OtpConnection.java:123: warning: no  <at> return
    public int msgCount() {
               ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpCookedConnection.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpEpmd.html...
./com/ericsson/otp/erlang/OtpEpmd.java:106: warning: no  <at> param for port
    public static void useEpmdPort(final int port) {
                       ^
./com/ericsson/otp/erlang/OtpEpmd.java:119: warning: no  <at> param for node
    public static int lookupPort(final AbstractNode node) throws IOException {
                      ^
./com/ericsson/otp/erlang/OtpEpmd.java:157: warning: no  <at> param for node
    public static void unPublishPort(final OtpLocalNode node) {
                       ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangAtom.html...
./com/ericsson/otp/erlang/OtpErlangObject.java:92: warning: no  <at> param for <T>
    public <T> boolean match(final OtpErlangObject term, final T binds) {
                       ^
./com/ericsson/otp/erlang/OtpErlangObject.java:103: warning: no description for  <at> throws
     *  <at> throws OtpErlangException
       ^
./com/ericsson/otp/erlang/OtpErlangObject.java:105: warning: no  <at> param for <T>
    public <T> OtpErlangObject bind(final T binds) throws OtpErlangException {
                               ^
./com/ericsson/otp/erlang/OtpErlangAtom.java:76: warning: no  <at> param for t
    public OtpErlangAtom(final boolean t) {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangBinary.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangBitstr.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangBoolean.html...
./com/ericsson/otp/erlang/OtpErlangBoolean.java:49: warning: no  <at> param for buf
    public OtpErlangBoolean(final OtpInputStream buf)
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangByte.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangChar.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangDecodeException.html...
./com/ericsson/otp/erlang/OtpErlangDecodeException.java:34: warning: no  <at> param for msg
    public OtpErlangDecodeException(final String msg) {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangDouble.html...
./com/ericsson/otp/erlang/OtpErlangDouble.java:36: warning: no  <at> param for d
    public OtpErlangDouble(final double d) {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangException.html...
./com/ericsson/otp/erlang/OtpErlangException.java:37: warning: no  <at> param for msg
    public OtpErlangException(final String msg) {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangExit.html...
./com/ericsson/otp/erlang/OtpErlangExit.java:102: warning: no  <at> return
    public OtpErlangObject reason() {
                           ^
./com/ericsson/otp/erlang/OtpErlangExit.java:109: warning: no  <at> return
    public OtpErlangPid pid() {
                        ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangExternalFun.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangFloat.html...
./com/ericsson/otp/erlang/OtpErlangFloat.java:31: warning: no  <at> param for f
    public OtpErlangFloat(final float f) {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangFun.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangInt.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangList.html...
./com/ericsson/otp/erlang/OtpErlangList.java:94: warning: no description for  <at> param
     *  <at> param lastTail
       ^
./com/ericsson/otp/erlang/OtpErlangList.java:95: warning: no description for  <at> throws
     *  <at> throws OtpErlangException
       ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangList.SubList.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangLong.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangMap.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangObject.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangObject.Hash.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangPid.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangPort.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangRangeException.html...
./com/ericsson/otp/erlang/OtpErlangRangeException.java:39: warning: no  <at> param for msg
    public OtpErlangRangeException(final String msg) {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangRef.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangShort.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangString.html...
./com/ericsson/otp/erlang/OtpErlangString.java:188: warning: no  <at> param for bytes
    public static String newString(final byte[] bytes) {
                         ^
./com/ericsson/otp/erlang/OtpErlangString.java:188: warning: no  <at> return
    public static String newString(final byte[] bytes) {
                         ^
./com/ericsson/otp/erlang/OtpErlangString.java:48: warning: no  <at> param for list
    public OtpErlangString(final OtpErlangList list) throws OtpErlangException {
           ^
./com/ericsson/otp/erlang/OtpErlangString.java:35: warning: no  <at> param for str
    public OtpErlangString(final String str) {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangTuple.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangUInt.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpErlangUShort.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpException.html...
./com/ericsson/otp/erlang/OtpException.java:37: warning: no  <at> param for msg
    public OtpException(final String msg) {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpExternal.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpInputStream.html...
./com/ericsson/otp/erlang/OtpInputStream.java:112: warning: no  <at> param for abuf
    public int readN(final byte[] abuf) throws OtpErlangDecodeException {
               ^
./com/ericsson/otp/erlang/OtpInputStream.java:125: warning: no  <at> param for abuf
    public int readN(final byte[] abuf, final int off, final int len)
               ^
./com/ericsson/otp/erlang/OtpInputStream.java:125: warning: no  <at> param for off
    public int readN(final byte[] abuf, final int off, final int len)
               ^
./com/ericsson/otp/erlang/OtpInputStream.java:125: warning: no  <at> param for len
    public int readN(final byte[] abuf, final int off, final int len)
               ^
./com/ericsson/otp/erlang/OtpInputStream.java:140: warning: no  <at> return
    public int peek() throws OtpErlangDecodeException {
               ^
./com/ericsson/otp/erlang/OtpInputStream.java:140: warning: no  <at> throws for com.ericsson.otp.erlang.OtpErlangDecodeException
    public int peek() throws OtpErlangDecodeException {
               ^
./com/ericsson/otp/erlang/OtpInputStream.java:40: warning: no description for  <at> param
     *  <at> param buf
       ^
./com/ericsson/otp/erlang/OtpInputStream.java:49: warning: no description for  <at> param
     *  <at> param flags
       ^
./com/ericsson/otp/erlang/OtpInputStream.java:51: warning: no  <at> param for buf
    public OtpInputStream(final byte[] buf, final int flags) {
           ^
./com/ericsson/otp/erlang/OtpInputStream.java:60: warning: no description for  <at> param
     *  <at> param flags
       ^
./com/ericsson/otp/erlang/OtpInputStream.java:62: warning: no  <at> param for buf
    public OtpInputStream(final byte[] buf, final int offset, final int length,
           ^
./com/ericsson/otp/erlang/OtpInputStream.java:62: warning: no  <at> param for offset
    public OtpInputStream(final byte[] buf, final int offset, final int length,
           ^
./com/ericsson/otp/erlang/OtpInputStream.java:62: warning: no  <at> param for length
    public OtpInputStream(final byte[] buf, final int offset, final int length,
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpLocalNode.html...
./com/ericsson/otp/erlang/OtpLocalNode.java:37: warning: no  <at> param for node
    protected OtpLocalNode(final String node) {
              ^
./com/ericsson/otp/erlang/OtpLocalNode.java:46: warning: no  <at> param for node
    protected OtpLocalNode(final String node,
              ^
./com/ericsson/otp/erlang/OtpLocalNode.java:46: warning: no  <at> param for transportFactory
    protected OtpLocalNode(final String node,
              ^
./com/ericsson/otp/erlang/OtpLocalNode.java:55: warning: no  <at> param for node
    protected OtpLocalNode(final String node, final String cookie) {
              ^
./com/ericsson/otp/erlang/OtpLocalNode.java:55: warning: no  <at> param for cookie
    protected OtpLocalNode(final String node, final String cookie) {
              ^
./com/ericsson/otp/erlang/OtpLocalNode.java:63: warning: no  <at> param for node
    protected OtpLocalNode(final String node, final String cookie,
              ^
./com/ericsson/otp/erlang/OtpLocalNode.java:63: warning: no  <at> param for cookie
    protected OtpLocalNode(final String node, final String cookie,
              ^
./com/ericsson/otp/erlang/OtpLocalNode.java:63: warning: no  <at> param for transportFactory
    protected OtpLocalNode(final String node, final String cookie,
              ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpMbox.html...
./com/ericsson/otp/erlang/OtpMbox.java:427: warning: no  <at> param for reason
    public void exit(final String reason) {
                ^
./com/ericsson/otp/erlang/OtpMbox.java:458: warning: no  <at> param for to
    public void exit(final OtpErlangPid to, final String reason) {
                ^
./com/ericsson/otp/erlang/OtpMbox.java:458: warning: no  <at> param for reason
    public void exit(final OtpErlangPid to, final String reason) {
                ^
./com/ericsson/otp/erlang/OtpMbox.java:598: warning: no  <at> return
    public boolean ping(final String node, final long timeout) {
                   ^
./com/ericsson/otp/erlang/OtpMbox.java:632: warning: no  <at> param for aname
    public OtpErlangPid whereis(final String aname) {
                        ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpMsg.html...
./com/ericsson/otp/erlang/OtpMsg.java:191: warning: no  <at> return
    public int type() {
               ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpNode.html...
./com/ericsson/otp/erlang/OtpNode.java:384: warning: no  <at> param for name
    public OtpErlangPid whereis(final String name) {
                        ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpNode.Acceptor.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpNode.Mailboxes.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpNodeStatus.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpOutputStream.html...
./com/ericsson/otp/erlang/OtpOutputStream.java:70: warning: no  <at> param for size
    public OtpOutputStream(final int size) {
           ^
./com/ericsson/otp/erlang/OtpOutputStream.java:77: warning: no  <at> param for o
    public OtpOutputStream(final OtpErlangObject o) {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpPeer.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpSelf.html...
./com/ericsson/otp/erlang/OtpSelf.java:156: error:  <at> param name not found
     *  <at> param transportFactory
              ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpServer.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpServerSocketTransport.html...
./com/ericsson/otp/erlang/OtpServerTransport.java:35: warning: no  <at> return
    int getLocalPort();
        ^
./com/ericsson/otp/erlang/OtpServerTransport.java:40: warning: no  <at> return
    OtpTransport accept() throws IOException;
                 ^
./com/ericsson/otp/erlang/OtpServerTransport.java:40: warning: no  <at> throws for java.io.IOException
    OtpTransport accept() throws IOException;
                 ^
./com/ericsson/otp/erlang/OtpServerTransport.java:45: warning: no  <at> throws for java.io.IOException
    void close() throws IOException;
         ^
./com/ericsson/otp/erlang/OtpServerSocketTransport.java:41: warning: no  <at> param for port
    public OtpServerSocketTransport(final int port) throws IOException {
           ^
./com/ericsson/otp/erlang/OtpServerSocketTransport.java:41: warning: no  <at> throws for java.io.IOException
    public OtpServerSocketTransport(final int port) throws IOException {
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpServerTransport.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpSocketTransport.html...
./com/ericsson/otp/erlang/OtpTransport.java:37: warning: no  <at> return
    public abstract InputStream getInputStream() throws IOException;
                                ^
./com/ericsson/otp/erlang/OtpTransport.java:37: warning: no  <at> throws for java.io.IOException
    public abstract InputStream getInputStream() throws IOException;
                                ^
./com/ericsson/otp/erlang/OtpTransport.java:42: warning: no  <at> return
    public abstract OutputStream getOutputStream() throws IOException;
                                 ^
./com/ericsson/otp/erlang/OtpTransport.java:42: warning: no  <at> throws for java.io.IOException
    public abstract OutputStream getOutputStream() throws IOException;
                                 ^
./com/ericsson/otp/erlang/OtpTransport.java:47: warning: no  <at> throws for java.io.IOException
    public abstract void close() throws IOException;
                         ^
./com/ericsson/otp/erlang/OtpSocketTransport.java:53: warning: no  <at> param for addr
    public OtpSocketTransport(final InetAddress addr, final int port)
           ^
./com/ericsson/otp/erlang/OtpSocketTransport.java:53: warning: no  <at> param for port
    public OtpSocketTransport(final InetAddress addr, final int port)
           ^
./com/ericsson/otp/erlang/OtpSocketTransport.java:53: warning: no  <at> throws for java.net.UnknownHostException
    public OtpSocketTransport(final InetAddress addr, final int port)
           ^
./com/ericsson/otp/erlang/OtpSocketTransport.java:53: warning: no  <at> throws for java.io.IOException
    public OtpSocketTransport(final InetAddress addr, final int port)
           ^
./com/ericsson/otp/erlang/OtpSocketTransport.java:44: warning: no  <at> param for addr
    public OtpSocketTransport(final String addr, final int port)
           ^
./com/ericsson/otp/erlang/OtpSocketTransport.java:44: warning: no  <at> param for port
    public OtpSocketTransport(final String addr, final int port)
           ^
./com/ericsson/otp/erlang/OtpSocketTransport.java:44: warning: no  <at> throws for java.net.UnknownHostException
    public OtpSocketTransport(final String addr, final int port)
           ^
./com/ericsson/otp/erlang/OtpSocketTransport.java:44: warning: no  <at> throws for java.io.IOException
    public OtpSocketTransport(final String addr, final int port)
           ^
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpSocketTransportFactory.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpTransport.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/OtpTransportFactory.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/package-frame.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/package-summary.html...
Generating ../doc/html/java/com/ericsson/otp/erlang/package-tree.html...
Generating ../doc/html/java/constant-values.html...
Generating ../doc/html/java/serialized-form.html...
Building index for all the packages and classes...
Generating ../doc/html/java/overview-tree.html...
Generating ../doc/html/java/index-all.html...
Generating ../doc/html/java/deprecated-list.html...
Building index for all classes...
Generating ../doc/html/java/allclasses-frame.html...
Generating ../doc/html/java/allclasses-noframe.html...
Generating ../doc/html/java/index.html...
Generating ../doc/html/java/help-doc.html...
1 error
97 warnings
make[5]: *** [jdoc] Error 1
make[4]: *** [release_docs] Error 2
make[3]: *** [release_docs] Error 2
make[2]: *** [release_docs] Error 2
make[1]: *** [release_docs] Error 2
make: *** [install-docs] Error 2

_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs

Johannes Weißl | 10 May 22:47 2015

^G-q in remote shell quits erlang node

Hello,

I experienced a very worrisome behavior: After connecting to an Erlang
node with "-remsh", typing "^G-q" (JCL mode) quit the production node (!),
not the maintenance shell:

    (node <at> host)2>
    User switch command
     --> q
    heart: Fri May  8 14:23:03 2015: Erlang has closed.
    Killed
    sh: echo: I/O error

I could not reproduce that in an example, but it happened twice on a
production node. Has anybody ever had this problem? Has anybody an idea
how this can happen and where the bug could be located?

The system is OTP 17.4 running on Debian Jessie. The node is started by
a shell init script using "run_erl -daemon", /sbin/init is systemd.

Regards,
Johannes
_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs

yannay livneh | 10 May 08:06 2015
Picon

asn1ct: cant build asn files with names which does not agree with module name

Hello,

asn1ct can't build asn1 file which contain module with name that is not the basename of the file.

Steps to reproduce:

$ erlc snmp.asn

result:
snmp.erl:6: can't find include file "RFC1157-SNMP.hrl"

The reason is confusion between 'erlang module' and 'asn1 module'.
asn1ct generates a .erl and .hrl files with basenames same as the .asn file, but the code try to include the asn1module.hrl (which does not exist).

The code which generates the -include line is in lib/asn1/src/asn1ct_gen.erl:gen_head

Regards,
yannay
_______________________________________________
erlang-bugs mailing list
erlang-bugs <at> erlang.org
http://erlang.org/mailman/listinfo/erlang-bugs

Gmane