Selaa lähdekoodia

core: pt - debug messages when registering app processes

Daniel-Constantin Mierla 8 vuotta sitten
vanhempi
commit
bffb6b8374
1 muutettua tiedostoa jossa 48 lisäystä ja 45 poistoa
  1. 48 45
      src/core/pt.c

+ 48 - 45
src/core/pt.c

@@ -41,9 +41,9 @@
 #include <stdio.h>
 #include <time.h> /* time(), used to initialize random numbers */
 
-#define FORK_DONT_WAIT  /* child doesn't wait for parent before starting 
-						   => faster startup, but the child should not assume
-						   the parent fixed the pt[] entry for it */
+#define FORK_DONT_WAIT  /* child doesn't wait for parent before starting
+						 * => faster startup, but the child should not assume
+						 * the parent fixed the pt[] entry for it */
 
 
 #ifdef PROFILING
@@ -72,17 +72,17 @@ unsigned int set_fork_delay(unsigned int v)
 static int calc_common_open_fds_no(void)
 {
 	int max_fds_no;
-	
-	/* 1 tcp send unix socket/all_proc, 
-	 *  + 1 udp sock/udp proc + 1 possible dns comm. socket + 
+
+	/* 1 tcp send unix socket/all_proc,
+	 *  + 1 udp sock/udp proc + 1 possible dns comm. socket +
 	 *  + 1 temporary tcp send sock.
 	 * Per process:
 	 *  + 1 if mhomed (now mhomed keeps a "cached socket" per process)
 	 *  + 1 if mhomed & ipv6
 	 */
 	max_fds_no=estimated_proc_no*4 /* udp|sctp + tcp unix sock +
-									  tmp. tcp send +
-									  tmp dns.*/
+									* tmp. tcp send +
+									* tmp dns.*/
 				-1 /* timer (no udp)*/ + 3 /* stdin/out/err */ +
 				2*mhomed
 				;
@@ -97,7 +97,9 @@ int init_pt(int proc_no)
 #ifdef USE_TCP
 	int r;
 #endif
-	
+
+	LM_DBG("registering new processes: %d (old) + %d (new) = %d (total)\n",
+			estimated_proc_no, proc_no, estimated_proc_no+proc_no);
 	estimated_proc_no+=proc_no;
 	estimated_fds_no+=calc_common_open_fds_no();
 	/*alloc pids*/
@@ -130,7 +132,7 @@ int init_pt(int proc_no)
 
 
 /* register no processes, used from mod_init when processes will be forked
- *  from mod_child 
+ *  from mod_child
  *  returns 0 on success, -1 on error
  */
 int register_procs(int no)
@@ -139,6 +141,8 @@ int register_procs(int no)
 		LM_CRIT("(%d) called at runtime\n", no);
 		return -1;
 	}
+	LM_DBG("registering new processes: %d (old) + %d (new) = %d (total)\n",
+			estimated_proc_no, no, estimated_proc_no+no);
 	estimated_proc_no+=no;
 	return 0;
 }
@@ -198,7 +202,7 @@ int close_extra_socks(int child_id, int proc_no)
 #ifdef USE_TCP
 	int r;
 	struct socket_info* si;
-	
+
 	if (child_id!=PROC_TCP_MAIN){
 		for (r=0; r<proc_no; r++){
 			if (pt[r].unix_sock>=0){
@@ -258,18 +262,18 @@ int fork_process(int child_id, char *desc, int make_sock)
 	#ifdef USE_TCP
 		sockfd[0]=sockfd[1]=-1;
 		if(make_sock && !tcp_disable){
-			 if (!is_main){
-				 LM_CRIT("called from a non "
-						 "\"main\" process! If forking from a module's "
-						 "child_init() fork only if rank==PROC_MAIN or"
-						 " give up tcp send support (use 0 for make_sock)\n");
-				 goto error;
-			 }
-			 if (tcp_main_pid){
-				 LM_CRIT("called, but tcp main is already started\n");
-				 goto error;
-			 }
-			 if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd)<0){
+			if (!is_main){
+				LM_CRIT("called from a non "
+						"\"main\" process! If forking from a module's "
+						"child_init() fork only if rank==PROC_MAIN or"
+						" give up tcp send support (use 0 for make_sock)\n");
+				goto error;
+			}
+			if (tcp_main_pid){
+				LM_CRIT("called, but tcp main is already started\n");
+				goto error;
+			}
+			if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd)<0){
 				LM_ERR("socketpair failed: %s\n",
 							strerror(errno));
 				goto error;
@@ -278,12 +282,12 @@ int fork_process(int child_id, char *desc, int make_sock)
 	#endif
 	lock_get(process_lock);
 	if (*process_count>=estimated_proc_no) {
-		LM_CRIT("Process limit of %d exceeded. Will simulate fork fail.\n", estimated_proc_no);
+		LM_CRIT("Process limit of %d exceeded. Will simulate fork fail.\n",
+				estimated_proc_no);
 		lock_release(process_lock);
 		goto error;
-	}	
-	
-	
+	}
+
 	child_process_no = *process_count;
 	new_seed1=kam_rand();
 	new_seed2=random();
@@ -324,7 +328,7 @@ int fork_process(int child_id, char *desc, int make_sock)
 				close(sockfd[0]);
 				unix_tcp_sock=sockfd[1];
 			}
-		#endif		
+		#endif
 		if ((child_id!=PROC_NOCHLDINIT) && (init_child(child_id) < 0)) {
 			LM_ERR("init_child failed for process %d, pid %d, \"%s\"\n",
 					process_no, pt[process_no].pid, pt[process_no].desc);
@@ -382,20 +386,20 @@ int fork_tcp_process(int child_id, char *desc, int r, int *reader_fd_1)
 	int i;
 	unsigned int new_seed1;
 	unsigned int new_seed2;
-	
+
 	/* init */
 	sockfd[0]=sockfd[1]=-1;
 	reader_fd[0]=reader_fd[1]=-1;
 	ret=-1;
-	
+
 	if (!is_main){
-		 LM_CRIT("called from a non \"main\" process\n");
-		 goto error;
-	 }
-	 if (tcp_main_pid){
-		 LM_CRIT("called _after_ starting tcp main\n");
-		 goto error;
-	 }
+		LM_CRIT("called from a non \"main\" process\n");
+		goto error;
+	}
+	if (tcp_main_pid){
+		LM_CRIT("called _after_ starting tcp main\n");
+		goto error;
+	}
 	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd)<0){
 		LM_ERR("socketpair failed: %s\n", strerror(errno));
 		goto error;
@@ -417,8 +421,7 @@ int fork_tcp_process(int child_id, char *desc, int r, int *reader_fd_1)
 		lock_release(process_lock);
 		goto error;
 	}
-	
-	
+
 	child_process_no = *process_count;
 	new_seed1=kam_rand();
 	new_seed2=random();
@@ -480,23 +483,23 @@ int fork_tcp_process(int child_id, char *desc, int r, int *reader_fd_1)
 		pt[child_process_no].unix_sock=sockfd[0];
 		pt[child_process_no].idx=r;
 		if (desc){
-			snprintf(pt[child_process_no].desc, MAX_PT_DESC, "%s child=%d", 
+			snprintf(pt[child_process_no].desc, MAX_PT_DESC, "%s child=%d",
 						desc, r);
 		}
 #ifdef FORK_DONT_WAIT
 #else
 		lock_release(process_lock);
 #endif
-		
+
 		close(sockfd[1]);
 		close(reader_fd[1]);
-		
+
 		tcp_children[r].pid=pid;
 		tcp_children[r].proc_no=child_process_no;
 		tcp_children[r].busy=0;
 		tcp_children[r].n_reqs=0;
 		tcp_children[r].unix_sock=reader_fd[0];
-		
+
 		ret=pid;
 		goto end;
 	}
@@ -526,7 +529,7 @@ void mem_dump_pkg_cb(str *gname, str *name)
 		old_memlog = cfg_get(core, core_cfg, memlog);
 		memlog = L_ALERT;
 		/* ugly hack to temporarily switch memlog to something visible,
-		   possible race with a parallel cfg_set */
+		 * possible race with a parallel cfg_set */
 		((struct cfg_group_core*)core_cfg)->memlog=memlog;
 
 		if (cfg_get(core, core_cfg, mem_summary) & 1) {
@@ -560,7 +563,7 @@ int mem_dump_shm_fixup(void *handle, str *gname, str *name, void **val)
 		old_memlog = cfg_get(core, core_cfg, memlog);
 		memlog = L_ALERT;
 		/* ugly hack to temporarily switch memlog to something visible,
-		   possible race with a parallel cfg_set */
+		 * possible race with a parallel cfg_set */
 		((struct cfg_group_core*)core_cfg)->memlog=memlog;
 
 		LOG(memlog, "Memory status (shm)\n");