Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Feb 2016 22:20:17 +0000 (UTC)
From:      Jimmy Olgeni <olgeni@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r409020 - in head/net/rabbitmq: . files
Message-ID:  <201602162220.u1GMKHMX065642@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: olgeni
Date: Tue Feb 16 22:20:16 2016
New Revision: 409020
URL: https://svnweb.freebsd.org/changeset/ports/409020

Log:
  Remove custom stderr formatting from net/rabbitmq.
  
  From upstream commit fecd0e5 in rabbitmq/rabbitmq-common:
  
      Opening several ports for single fd is considered undefined behaviour
      in erlang. It's safe to replace this whole function with 'io:format'.
  
      Because writing to standard_error with io:format is synchronous - after
      this call has returned data was definitely sent to the port. And
      `erlang:halt` guarantees that this data will be flushed afterwards.
  
  See also ba531a1 in erlang/otp:
  
      Instead of outputting a formatted message showing errors found, a core
      was (often) created.
  
  This commit should fix all issues related to core dumps with RabbitMQ on
  Erlang 18, which were most often observed when creating or joining
  clusters.
  
  MFH requested because a beam core dump would be most certainly interpreted
  as the symptom of something worse within the Erlang VM.
  
  PR:		204147
  Submitted by:	Alexey Lebedeff (follow up)
  MFH:		2016Q1

Added:
  head/net/rabbitmq/files/patch-src_rabbit__misc.erl   (contents, props changed)
Modified:
  head/net/rabbitmq/Makefile

Modified: head/net/rabbitmq/Makefile
==============================================================================
--- head/net/rabbitmq/Makefile	Tue Feb 16 20:40:18 2016	(r409019)
+++ head/net/rabbitmq/Makefile	Tue Feb 16 22:20:16 2016	(r409020)
@@ -3,7 +3,7 @@
 
 PORTNAME=	rabbitmq
 PORTVERSION=	3.5.7
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	net
 MASTER_SITES=	http://www.rabbitmq.com/releases/rabbitmq-server/v${PORTVERSION}/
 DISTNAME=	${PORTNAME}-server-${PORTVERSION}

Added: head/net/rabbitmq/files/patch-src_rabbit__misc.erl
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/rabbitmq/files/patch-src_rabbit__misc.erl	Tue Feb 16 22:20:16 2016	(r409020)
@@ -0,0 +1,22 @@
+--- src/rabbit_misc.erl.orig	2015-12-15 10:23:52 UTC
++++ src/rabbit_misc.erl
+@@ -652,18 +652,7 @@ format_many(List) ->
+     lists:flatten([io_lib:format(F ++ "~n", A) || {F, A} <- List]).
+ 
+ format_stderr(Fmt, Args) ->
+-    case os:type() of
+-        {unix, _} ->
+-            Port = open_port({fd, 0, 2}, [out]),
+-            port_command(Port, io_lib:format(Fmt, Args)),
+-            port_close(Port);
+-        {win32, _} ->
+-            %% stderr on Windows is buffered and I can't figure out a
+-            %% way to trigger a fflush(stderr) in Erlang. So rather
+-            %% than risk losing output we write to stdout instead,
+-            %% which appears to be unbuffered.
+-            io:format(Fmt, Args)
+-    end,
++    io:format(standard_error, Fmt, Args),
+     ok.
+ 
+ unfold(Fun, Init) ->



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201602162220.u1GMKHMX065642>