[svn-commits] mjordan: branch certified-11.2 r381405 - in /certified/branches/11.2: ./ main/

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Feb 14 09:14:57 CST 2013


Author: mjordan
Date: Thu Feb 14 09:14:53 2013
New Revision: 381405

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=381405
Log:
Fix astcanary startup problem due to wrong pid value from before daemon call

When Asterisk forks itself into the background via a call to daemon, it must
re-set the pid value of the new process. Otherwise, astcanary gets the pid
value of the process before the fork, which prevents it from running. Asterisk
eventually starts lowering its priority, as it can no longer communicate
with the proverbial canary in the coal mine.

This patch ensures that the correct process identifier is used by astcanary.

Note that this is getting committed to 10 as a regression fix.

(closes issue ASTERISK-20947)
Reported by: Jakob Hirsch
Tested by: mjordan
patches:
  asterisk-10.12.0.astcanary_ppid.diff uploaded by Jakob Hirsch (license 6113)
........

Merged revisions 379509 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 379510 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 379513 from http://svn.asterisk.org/svn/asterisk/branches/11

Modified:
    certified/branches/11.2/   (props changed)
    certified/branches/11.2/main/asterisk.c

Propchange: certified/branches/11.2/
------------------------------------------------------------------------------
--- branch-11-merged (original)
+++ branch-11-merged Thu Feb 14 09:14:53 2013
@@ -1,1 +1,1 @@
-/branches/11:378038,378287,378321,378409-378411,378582,378687,378690,378984,379790,380465,381306
+/branches/11:378038,378287,378321,378409-378411,378582,378687,378690,378984,379513,379790,380465,381306

Modified: certified/branches/11.2/main/asterisk.c
URL: http://svnview.digium.com/svn/asterisk/certified/branches/11.2/main/asterisk.c?view=diff&rev=381405&r1=381404&r2=381405
==============================================================================
--- certified/branches/11.2/main/asterisk.c (original)
+++ certified/branches/11.2/main/asterisk.c Thu Feb 14 09:14:53 2013
@@ -3893,6 +3893,8 @@
 #ifndef HAVE_SBIN_LAUNCHD
 		if (daemon(1, 0) < 0) {
 			fprintf(stderr, "daemon() failed: %s\n", strerror(errno));
+		} else {
+			ast_mainpid = getpid();
 		}
 #else
 		fprintf(stderr, "Mac OS X detected.  Use 'launchctl load /Library/LaunchDaemon/org.asterisk.asterisk.plist'.\n");
@@ -3944,11 +3946,10 @@
 	}
 
 	/* Blindly write the PID file. */
-	ast_mainpid = getpid();
 	unlink(ast_config_AST_PID);
 	f = fopen(ast_config_AST_PID, "w");
 	if (f) {
-		fprintf(f, "%ld\n", (long)getpid());
+		fprintf(f, "%ld\n", (long)ast_mainpid);
 		fclose(f);
 	} else {
 		fprintf(stderr, "Unable to open pid file '%s': %s\n", ast_config_AST_PID, strerror(errno));




More information about the svn-commits mailing list