1
1
/* ___INFO__MARK_BEGIN__*/
2
2
/* ************************************************************************
3
- *
3
+ *
4
4
* The Contents of this file are made available subject to the terms of
5
5
* the Sun Industry Standards Source License Version 1.2
6
- *
6
+ *
7
7
* Sun Microsystems Inc., March, 2001
8
- *
9
- *
8
+ *
9
+ *
10
10
* Sun Industry Standards Source License Version 1.2
11
11
* =================================================
12
12
* The contents of this file are subject to the Sun Industry Standards
13
13
* Source License Version 1.2 (the "License"); You may not use this file
14
14
* except in compliance with the License. You may obtain a copy of the
15
15
* License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
16
- *
16
+ *
17
17
* Software provided under this License is provided on an "AS IS" basis,
18
18
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
19
19
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
20
20
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
21
21
* See the License for the specific provisions governing your rights and
22
22
* obligations concerning the Software.
23
- *
23
+ *
24
24
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
25
- *
25
+ *
26
26
* Copyright: 2001 by Sun Microsystems, Inc.
27
- *
27
+ *
28
28
* All Rights Reserved.
29
- *
29
+ *
30
30
* Portions of this software are Copyright (c) 2023-2024 HPC-Gridware GmbH
31
31
*
32
32
************************************************************************/
@@ -88,7 +88,7 @@ int sge_execd_process_messages() {
88
88
last_alive_check = sge_get_gmt64 ();
89
89
last_heard = last_alive_check;
90
90
91
- /* calculate alive check interval based on load report time POS 1/2
91
+ /* calculate alive check interval based on load report time POS 1/2
92
92
* If modified, please also change POS 2/2
93
93
*/
94
94
load_report_time = sge_gmt32_to_gmt64 (mconf_get_load_report_time ());
@@ -141,13 +141,17 @@ int sge_execd_process_messages() {
141
141
142
142
switch (msg.tag ) {
143
143
case ocs::gdi::ClientServerBase::TAG_JOB_EXECUTION:
144
+ // Here we just store the job in the master job list or add a pe task to the job->ja_task->task_list.
145
+ // It will be executed later in do_ck_to_do() -> sge_start_jobs().
144
146
if (init_packbuffer (&apb, 1024 ) == PACK_SUCCESS) {
145
147
do_job_exec (&msg, &apb, from_qmaster);
146
148
is_apb_used = true ;
147
149
atag = msg.tag ;
148
150
}
149
151
break ;
150
152
case ocs::gdi::ClientServerBase::TAG_SLAVE_ALLOW:
153
+ // Here we store the job in the master job list.
154
+ // This allows us to start tasks of tightly integrated jobs later (being submitted via qrsh -inherit).
151
155
do_job_slave (&msg);
152
156
break ;
153
157
case ocs::gdi::ClientServerBase::TAG_CHANGE_TICKET:
@@ -216,7 +220,7 @@ int sge_execd_process_messages() {
216
220
default :
217
221
do_reconnect = true ;
218
222
break ;
219
- }
223
+ }
220
224
cl_commlib_trigger (cl_com_get_handle (component_get_component_name (), 0 ), 1 );
221
225
}
222
226
@@ -226,7 +230,7 @@ int sge_execd_process_messages() {
226
230
227
231
if (do_reconnect) {
228
232
/*
229
- * we are not connected, reconnect and register at qmaster ...
233
+ * we are not connected, reconnect and register at qmaster ...
230
234
*/
231
235
if (cl_com_get_handle (prognames[EXECD], 1 ) == nullptr ) {
232
236
terminate = true ; /* if we don't have a handle, we must leave
@@ -237,12 +241,12 @@ int sge_execd_process_messages() {
237
241
ret = CL_RETVAL_HANDLE_NOT_FOUND;
238
242
}
239
243
240
- /*
241
- * trigger re-read of act_qmaster_file
244
+ /*
245
+ * trigger re-read of act_qmaster_file
242
246
*/
243
247
if (!terminate) {
244
248
static u_long64 last_qmaster_file_read = 0 ;
245
-
249
+
246
250
/* fix system clock moved back situation */
247
251
if (last_qmaster_file_read > now) {
248
252
last_qmaster_file_read = 0 ;
@@ -295,7 +299,7 @@ int sge_execd_process_messages() {
295
299
/* fix system clock moved back situation and do test in any case */
296
300
if (last_alive_check > now) {
297
301
last_alive_check = 0 ;
298
- }
302
+ }
299
303
if (last_heard > now) {
300
304
last_heard = 0 ;
301
305
}
@@ -321,7 +325,7 @@ int sge_execd_process_messages() {
321
325
DPRINTF("now - last_heard = " sge_u64 "\n", now - last_heard);
322
326
DPRINTF("alive_check_interval= " sge_u64 "\n", alive_check_interval);
323
327
#endif
324
-
328
+
325
329
/*
326
330
* last message was send before alive_check_interval seconds
327
331
*/
@@ -331,7 +335,7 @@ int sge_execd_process_messages() {
331
335
cl_com_handle_t * handle = cl_com_get_handle (prognames[EXECD],1 );
332
336
cl_com_SIRM_t* ep_status = nullptr ;
333
337
334
- /*
338
+ /*
335
339
* qmaster file has not changed, check the endpoint status
336
340
*/
337
341
ret_val = cl_commlib_get_endpoint_status (handle,
0 commit comments