Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
451 changes: 451 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions CHANGELOG
Original file line numberDiff line numberDiff line change
Expand Up@@ -73,6 +73,8 @@ c - crash b - bug fix e - enhancement f - new feature n - note
set to the login nodes. TRQ-1482.
b - Fix a bug that using -V got rid of -v. TRQ-1457.
b - Make qsub -I -x work again. TRQ-1483.
c - Fix a potential crash when getting the status of a login node in cray mode.
TRQ-1491.

4.1.3
b - fix a security loophole that potentially allowed an interactive job to run
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,7 @@ EXTRA_DIST = acinclude.m4 \
CHANGELOG \
configure.ac \
cov_file_results.pl \
current_hash \
Doxyfile \
INSTALL \
INSTALL.GNU \
Expand Down
13 changes: 8 additions & 5 deletions configure.ac
Original file line numberDiff line numberDiff line change
Expand Up@@ -69,13 +69,16 @@ dnl be created in the include directory.
AM_CONFIG_HEADER([src/include/pbs_config.h])

dnl
dnl Find our svn revision number for program outputs
dnl Find our git revision hash for program outputs
dnl
AC_PATH_PROG(svnversioncommand, svnversion)
if test "X$svnversioncommand" != "X" && test `$svnversioncommand -n '.'` != "exported"; then
AC_DEFINE_UNQUOTED(SVN_VERSION, ["`svnversion -n`"], [repository svn version])
githash="`git rev-parse HEAD`"
success=$?
if test "X$success" != "X0" ; then
AC_DEFINE_UNQUOTED(GIT_HASH, ["$githash"], [repository svn version])
else
AC_DEFINE_UNQUOTED(SVN_VERSION, ["unknown"], [repository svn version])
dnl current hash is a file checked in to the git repo in the base directory
dnl containing the most recent hash
AC_DEFINE_UNQUOTED(GIT_HASH, ["`cat current_hash`"], [repository svn version])
fi


Expand Down
1 change: 1 addition & 0 deletions current_hash
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
a2498b31a71e656959f38ce8a88024fbc869eaad
2 changes: 1 addition & 1 deletion src/cmds/pbsnodes.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -712,7 +712,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/cmds/qstat.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2207,7 +2207,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/include/pbs_job.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1087,7 +1087,7 @@ extern char *prefix_std_file(job *, dynamic_string *, int);
extern char *add_std_filename(job *, char *, int, dynamic_string *);
extern int set_jobexid(job *, pbs_attribute *, char *);
extern int site_check_user_map(job *, char *, char *, int);
int svr_dequejob(char *, int);
int svr_dequejob(job *, int);
extern int svr_enquejob(job *, int, int);
extern void svr_evaljobstate(job *, int *, int *, int);
extern void svr_mailowner(job *, int, int, char *);
Expand Down
2 changes: 2 additions & 0 deletions src/include/pbs_nodes.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -332,6 +332,8 @@ struct pbsnode
struct AvlNode *node_boards; /* private tree of numa nodes */
char *numa_str; /* comma-delimited string of processor values */
char *gpu_str; /* comma-delimited string of the number of gpus for each nodeboard */

unsigned char nd_mom_reported_down;/* notes that the mom reported its own shutdown */

unsigned char nd_is_alps_reporter;
unsigned char nd_is_alps_login;
Expand Down
120 changes: 69 additions & 51 deletions src/lib/Libifl/tm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -170,8 +170,10 @@ static event_info *event_hash[EVENT_HASH];
/*
** Find an event number or return a NULL.
*/
static event_info *
find_event(tm_event_t x)
event_info *find_event(

tm_event_t x)

{
event_info *ep;

Expand All@@ -187,10 +189,11 @@ find_event(tm_event_t x)
/*
** Delete an event.
*/
static void
del_event(event_info *ep)
{
void del_event(
event_info *ep)

{
/* unlink event from hash list */
if (ep->e_prev)
ep->e_prev->e_next = ep->e_next;
Expand DownExpand Up@@ -245,8 +248,8 @@ del_event(event_info *ep)
/*
** Create a new event number.
*/
static tm_event_t
new_event(void)
tm_event_t new_event(void)

{
static tm_event_t next_event = TM_NULL_EVENT + 1;
event_info *ep;
Expand DownExpand Up@@ -275,8 +278,12 @@ new_event(void)
/*
** Link new event number into the above hash table.
*/
static void
add_event(tm_event_t event, tm_node_id node, int type, void *info)
void add_event(

tm_event_t event,
tm_node_id node,
int type,
void *info)
{
event_info *ep, **head;

Expand DownExpand Up@@ -322,8 +329,10 @@ static task_info *task_hash[TASK_HASH];
/*
** Find a task table entry for a given task number or return a NULL.
*/
static task_info *
find_task(tm_task_id x)
task_info *find_task(

tm_task_id x)

{
task_info *tp;

Expand All@@ -340,8 +349,12 @@ find_task(tm_task_id x)
** Create a new task entry and link it into the above hash
** table.
*/
static tm_task_id
new_task(char *jobid, tm_node_id node, tm_task_id task)
tm_task_id new_task(

char *jobid,
tm_node_id node,
tm_task_id task)

{
task_info *tp, **head;

Expand DownExpand Up@@ -559,8 +572,8 @@ static int localmom(void)

static int startcom(

int com,
tm_event_t event,
int com,
tm_event_t event,
struct tcp_chan **pchan)

{
Expand DownExpand Up@@ -943,6 +956,7 @@ int tm_obit(
tm_task_id tid, /* in */
int *obitval, /* out */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
task_info *tp;
Expand DownExpand Up@@ -1002,14 +1016,14 @@ struct taskhold
** is a valid node number, it returns the event that the list of
** tasks on <node> is available.
*/
int
tm_taskinfo(
tm_node_id node, /* in */
int tm_taskinfo(

tm_node_id node, /* in */
tm_task_id *tid_list, /* out */
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event /* out */
)
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event) /* out */

{
struct taskhold *thold;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1053,11 +1067,11 @@ tm_taskinfo(
** Returns the job-relative node number that holds or held <tid>. In
** case of an error, it returns TM_ERROR_NODE.
*/
int
tm_atnode(
tm_task_id tid, /* in */
tm_node_id *node /* out */
)
int tm_atnode(

tm_task_id tid, /* in */
tm_node_id *node) /* out */

{
task_info *tp;

Expand DownExpand Up@@ -1085,12 +1099,13 @@ struct reschold
** <node> is available. It returns ERROR_EVENT otherwise.
*/
int tm_rescinfo(
tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */

tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */
tm_event_t *event) /* out */
{

{
struct reschold *rhold;
struct tcp_chan *chan = NULL;

Expand DownExpand Up@@ -1125,21 +1140,24 @@ int tm_rescinfo(
add_event(*event, node, TM_RESOURCES, (void *)rhold);

return TM_SUCCESS;
}
} /* END tm_rescinfo() */




/*
** Posts the first <nbytes> of a copy of *<info> within MOM on
** this node, and associated with this task. If <info> is
** non-NULL, it returns the event that the effort to post *<info>
** is complete. It returns ERROR_EVENT otherwise.
*/
int
tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event /* out */
)
int tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1173,7 +1191,7 @@ tm_publish(
DIS_tcp_cleanup(chan);

return rc;
}
} /* tm_publish() */

struct infohold
{
Expand All@@ -1187,18 +1205,18 @@ struct infohold
** <tid> is a valid task, it returns the event that the
** string specifying the info posted by <tid> is available.
*/
int
tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event /* out */
)
int tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event) /* out */
{
int rc = TM_SUCCESS;
task_info *tp;
int rc = TM_SUCCESS;
task_info *tp;
struct tcp_chan *chan = NULL;

struct infohold *ihold;
Expand Down
3 changes: 3 additions & 0 deletions src/resmom/linux/mom_mach.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2690,6 +2690,9 @@ int mom_close_poll(void)
if (proc_array != NULL)
{
free(proc_array);
proc_array = NULL;
nproc = 0;
max_proc = TBL_INC;
}

return(PBSE_NONE);
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
451 changes: 451 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions CHANGELOG
Original file line numberDiff line numberDiff line change
Expand Up@@ -73,6 +73,8 @@ c - crash b - bug fix e - enhancement f - new feature n - note
set to the login nodes. TRQ-1482.
b - Fix a bug that using -V got rid of -v. TRQ-1457.
b - Make qsub -I -x work again. TRQ-1483.
c - Fix a potential crash when getting the status of a login node in cray mode.
TRQ-1491.

4.1.3
b - fix a security loophole that potentially allowed an interactive job to run
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,7 @@ EXTRA_DIST = acinclude.m4 \
CHANGELOG \
configure.ac \
cov_file_results.pl \
current_hash \
Doxyfile \
INSTALL \
INSTALL.GNU \
Expand Down
13 changes: 8 additions & 5 deletions configure.ac
Original file line numberDiff line numberDiff line change
Expand Up@@ -69,13 +69,16 @@ dnl be created in the include directory.
AM_CONFIG_HEADER([src/include/pbs_config.h])

dnl
dnl Find our svn revision number for program outputs
dnl Find our git revision hash for program outputs
dnl
AC_PATH_PROG(svnversioncommand, svnversion)
if test "X$svnversioncommand" != "X" && test `$svnversioncommand -n '.'` != "exported"; then
AC_DEFINE_UNQUOTED(SVN_VERSION, ["`svnversion -n`"], [repository svn version])
githash="`git rev-parse HEAD`"
success=$?
if test "X$success" != "X0" ; then
AC_DEFINE_UNQUOTED(GIT_HASH, ["$githash"], [repository svn version])
else
AC_DEFINE_UNQUOTED(SVN_VERSION, ["unknown"], [repository svn version])
dnl current hash is a file checked in to the git repo in the base directory
dnl containing the most recent hash
AC_DEFINE_UNQUOTED(GIT_HASH, ["`cat current_hash`"], [repository svn version])
fi


Expand Down
1 change: 1 addition & 0 deletions current_hash
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
a2498b31a71e656959f38ce8a88024fbc869eaad
2 changes: 1 addition & 1 deletion src/cmds/pbsnodes.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -712,7 +712,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/cmds/qstat.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2207,7 +2207,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/include/pbs_job.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1087,7 +1087,7 @@ extern char *prefix_std_file(job *, dynamic_string *, int);
extern char *add_std_filename(job *, char *, int, dynamic_string *);
extern int set_jobexid(job *, pbs_attribute *, char *);
extern int site_check_user_map(job *, char *, char *, int);
int svr_dequejob(char *, int);
int svr_dequejob(job *, int);
extern int svr_enquejob(job *, int, int);
extern void svr_evaljobstate(job *, int *, int *, int);
extern void svr_mailowner(job *, int, int, char *);
Expand Down
2 changes: 2 additions & 0 deletions src/include/pbs_nodes.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -332,6 +332,8 @@ struct pbsnode
struct AvlNode *node_boards; /* private tree of numa nodes */
char *numa_str; /* comma-delimited string of processor values */
char *gpu_str; /* comma-delimited string of the number of gpus for each nodeboard */

unsigned char nd_mom_reported_down;/* notes that the mom reported its own shutdown */

unsigned char nd_is_alps_reporter;
unsigned char nd_is_alps_login;
Expand Down
120 changes: 69 additions & 51 deletions src/lib/Libifl/tm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -170,8 +170,10 @@ static event_info *event_hash[EVENT_HASH];
/*
** Find an event number or return a NULL.
*/
static event_info *
find_event(tm_event_t x)
event_info *find_event(

tm_event_t x)

{
event_info *ep;

Expand All@@ -187,10 +189,11 @@ find_event(tm_event_t x)
/*
** Delete an event.
*/
static void
del_event(event_info *ep)
{
void del_event(
event_info *ep)

{
/* unlink event from hash list */
if (ep->e_prev)
ep->e_prev->e_next = ep->e_next;
Expand DownExpand Up@@ -245,8 +248,8 @@ del_event(event_info *ep)
/*
** Create a new event number.
*/
static tm_event_t
new_event(void)
tm_event_t new_event(void)

{
static tm_event_t next_event = TM_NULL_EVENT + 1;
event_info *ep;
Expand DownExpand Up@@ -275,8 +278,12 @@ new_event(void)
/*
** Link new event number into the above hash table.
*/
static void
add_event(tm_event_t event, tm_node_id node, int type, void *info)
void add_event(

tm_event_t event,
tm_node_id node,
int type,
void *info)
{
event_info *ep, **head;

Expand DownExpand Up@@ -322,8 +329,10 @@ static task_info *task_hash[TASK_HASH];
/*
** Find a task table entry for a given task number or return a NULL.
*/
static task_info *
find_task(tm_task_id x)
task_info *find_task(

tm_task_id x)

{
task_info *tp;

Expand All@@ -340,8 +349,12 @@ find_task(tm_task_id x)
** Create a new task entry and link it into the above hash
** table.
*/
static tm_task_id
new_task(char *jobid, tm_node_id node, tm_task_id task)
tm_task_id new_task(

char *jobid,
tm_node_id node,
tm_task_id task)

{
task_info *tp, **head;

Expand DownExpand Up@@ -559,8 +572,8 @@ static int localmom(void)

static int startcom(

int com,
tm_event_t event,
int com,
tm_event_t event,
struct tcp_chan **pchan)

{
Expand DownExpand Up@@ -943,6 +956,7 @@ int tm_obit(
tm_task_id tid, /* in */
int *obitval, /* out */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
task_info *tp;
Expand DownExpand Up@@ -1002,14 +1016,14 @@ struct taskhold
** is a valid node number, it returns the event that the list of
** tasks on <node> is available.
*/
int
tm_taskinfo(
tm_node_id node, /* in */
int tm_taskinfo(

tm_node_id node, /* in */
tm_task_id *tid_list, /* out */
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event /* out */
)
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event) /* out */

{
struct taskhold *thold;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1053,11 +1067,11 @@ tm_taskinfo(
** Returns the job-relative node number that holds or held <tid>. In
** case of an error, it returns TM_ERROR_NODE.
*/
int
tm_atnode(
tm_task_id tid, /* in */
tm_node_id *node /* out */
)
int tm_atnode(

tm_task_id tid, /* in */
tm_node_id *node) /* out */

{
task_info *tp;

Expand DownExpand Up@@ -1085,12 +1099,13 @@ struct reschold
** <node> is available. It returns ERROR_EVENT otherwise.
*/
int tm_rescinfo(
tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */

tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */
tm_event_t *event) /* out */
{

{
struct reschold *rhold;
struct tcp_chan *chan = NULL;

Expand DownExpand Up@@ -1125,21 +1140,24 @@ int tm_rescinfo(
add_event(*event, node, TM_RESOURCES, (void *)rhold);

return TM_SUCCESS;
}
} /* END tm_rescinfo() */




/*
** Posts the first <nbytes> of a copy of *<info> within MOM on
** this node, and associated with this task. If <info> is
** non-NULL, it returns the event that the effort to post *<info>
** is complete. It returns ERROR_EVENT otherwise.
*/
int
tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event /* out */
)
int tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1173,7 +1191,7 @@ tm_publish(
DIS_tcp_cleanup(chan);

return rc;
}
} /* tm_publish() */

struct infohold
{
Expand All@@ -1187,18 +1205,18 @@ struct infohold
** <tid> is a valid task, it returns the event that the
** string specifying the info posted by <tid> is available.
*/
int
tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event /* out */
)
int tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event) /* out */
{
int rc = TM_SUCCESS;
task_info *tp;
int rc = TM_SUCCESS;
task_info *tp;
struct tcp_chan *chan = NULL;

struct infohold *ihold;
Expand Down
3 changes: 3 additions & 0 deletions src/resmom/linux/mom_mach.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2690,6 +2690,9 @@ int mom_close_poll(void)
if (proc_array != NULL)
{
free(proc_array);
proc_array = NULL;
nproc = 0;
max_proc = TBL_INC;
}

return(PBSE_NONE);
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
451 changes: 451 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions CHANGELOG
Original file line numberDiff line numberDiff line change
Expand Up@@ -73,6 +73,8 @@ c - crash b - bug fix e - enhancement f - new feature n - note
set to the login nodes. TRQ-1482.
b - Fix a bug that using -V got rid of -v. TRQ-1457.
b - Make qsub -I -x work again. TRQ-1483.
c - Fix a potential crash when getting the status of a login node in cray mode.
TRQ-1491.

4.1.3
b - fix a security loophole that potentially allowed an interactive job to run
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,7 @@ EXTRA_DIST = acinclude.m4 \
CHANGELOG \
configure.ac \
cov_file_results.pl \
current_hash \
Doxyfile \
INSTALL \
INSTALL.GNU \
Expand Down
13 changes: 8 additions & 5 deletions configure.ac
Original file line numberDiff line numberDiff line change
Expand Up@@ -69,13 +69,16 @@ dnl be created in the include directory.
AM_CONFIG_HEADER([src/include/pbs_config.h])

dnl
dnl Find our svn revision number for program outputs
dnl Find our git revision hash for program outputs
dnl
AC_PATH_PROG(svnversioncommand, svnversion)
if test "X$svnversioncommand" != "X" && test `$svnversioncommand -n '.'` != "exported"; then
AC_DEFINE_UNQUOTED(SVN_VERSION, ["`svnversion -n`"], [repository svn version])
githash="`git rev-parse HEAD`"
success=$?
if test "X$success" != "X0" ; then
AC_DEFINE_UNQUOTED(GIT_HASH, ["$githash"], [repository svn version])
else
AC_DEFINE_UNQUOTED(SVN_VERSION, ["unknown"], [repository svn version])
dnl current hash is a file checked in to the git repo in the base directory
dnl containing the most recent hash
AC_DEFINE_UNQUOTED(GIT_HASH, ["`cat current_hash`"], [repository svn version])
fi


Expand Down
1 change: 1 addition & 0 deletions current_hash
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
a2498b31a71e656959f38ce8a88024fbc869eaad
2 changes: 1 addition & 1 deletion src/cmds/pbsnodes.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -712,7 +712,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/cmds/qstat.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2207,7 +2207,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/include/pbs_job.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1087,7 +1087,7 @@ extern char *prefix_std_file(job *, dynamic_string *, int);
extern char *add_std_filename(job *, char *, int, dynamic_string *);
extern int set_jobexid(job *, pbs_attribute *, char *);
extern int site_check_user_map(job *, char *, char *, int);
int svr_dequejob(char *, int);
int svr_dequejob(job *, int);
extern int svr_enquejob(job *, int, int);
extern void svr_evaljobstate(job *, int *, int *, int);
extern void svr_mailowner(job *, int, int, char *);
Expand Down
2 changes: 2 additions & 0 deletions src/include/pbs_nodes.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -332,6 +332,8 @@ struct pbsnode
struct AvlNode *node_boards; /* private tree of numa nodes */
char *numa_str; /* comma-delimited string of processor values */
char *gpu_str; /* comma-delimited string of the number of gpus for each nodeboard */

unsigned char nd_mom_reported_down;/* notes that the mom reported its own shutdown */

unsigned char nd_is_alps_reporter;
unsigned char nd_is_alps_login;
Expand Down
120 changes: 69 additions & 51 deletions src/lib/Libifl/tm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -170,8 +170,10 @@ static event_info *event_hash[EVENT_HASH];
/*
** Find an event number or return a NULL.
*/
static event_info *
find_event(tm_event_t x)
event_info *find_event(

tm_event_t x)

{
event_info *ep;

Expand All@@ -187,10 +189,11 @@ find_event(tm_event_t x)
/*
** Delete an event.
*/
static void
del_event(event_info *ep)
{
void del_event(
event_info *ep)

{
/* unlink event from hash list */
if (ep->e_prev)
ep->e_prev->e_next = ep->e_next;
Expand DownExpand Up@@ -245,8 +248,8 @@ del_event(event_info *ep)
/*
** Create a new event number.
*/
static tm_event_t
new_event(void)
tm_event_t new_event(void)

{
static tm_event_t next_event = TM_NULL_EVENT + 1;
event_info *ep;
Expand DownExpand Up@@ -275,8 +278,12 @@ new_event(void)
/*
** Link new event number into the above hash table.
*/
static void
add_event(tm_event_t event, tm_node_id node, int type, void *info)
void add_event(

tm_event_t event,
tm_node_id node,
int type,
void *info)
{
event_info *ep, **head;

Expand DownExpand Up@@ -322,8 +329,10 @@ static task_info *task_hash[TASK_HASH];
/*
** Find a task table entry for a given task number or return a NULL.
*/
static task_info *
find_task(tm_task_id x)
task_info *find_task(

tm_task_id x)

{
task_info *tp;

Expand All@@ -340,8 +349,12 @@ find_task(tm_task_id x)
** Create a new task entry and link it into the above hash
** table.
*/
static tm_task_id
new_task(char *jobid, tm_node_id node, tm_task_id task)
tm_task_id new_task(

char *jobid,
tm_node_id node,
tm_task_id task)

{
task_info *tp, **head;

Expand DownExpand Up@@ -559,8 +572,8 @@ static int localmom(void)

static int startcom(

int com,
tm_event_t event,
int com,
tm_event_t event,
struct tcp_chan **pchan)

{
Expand DownExpand Up@@ -943,6 +956,7 @@ int tm_obit(
tm_task_id tid, /* in */
int *obitval, /* out */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
task_info *tp;
Expand DownExpand Up@@ -1002,14 +1016,14 @@ struct taskhold
** is a valid node number, it returns the event that the list of
** tasks on <node> is available.
*/
int
tm_taskinfo(
tm_node_id node, /* in */
int tm_taskinfo(

tm_node_id node, /* in */
tm_task_id *tid_list, /* out */
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event /* out */
)
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event) /* out */

{
struct taskhold *thold;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1053,11 +1067,11 @@ tm_taskinfo(
** Returns the job-relative node number that holds or held <tid>. In
** case of an error, it returns TM_ERROR_NODE.
*/
int
tm_atnode(
tm_task_id tid, /* in */
tm_node_id *node /* out */
)
int tm_atnode(

tm_task_id tid, /* in */
tm_node_id *node) /* out */

{
task_info *tp;

Expand DownExpand Up@@ -1085,12 +1099,13 @@ struct reschold
** <node> is available. It returns ERROR_EVENT otherwise.
*/
int tm_rescinfo(
tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */

tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */
tm_event_t *event) /* out */
{

{
struct reschold *rhold;
struct tcp_chan *chan = NULL;

Expand DownExpand Up@@ -1125,21 +1140,24 @@ int tm_rescinfo(
add_event(*event, node, TM_RESOURCES, (void *)rhold);

return TM_SUCCESS;
}
} /* END tm_rescinfo() */




/*
** Posts the first <nbytes> of a copy of *<info> within MOM on
** this node, and associated with this task. If <info> is
** non-NULL, it returns the event that the effort to post *<info>
** is complete. It returns ERROR_EVENT otherwise.
*/
int
tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event /* out */
)
int tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1173,7 +1191,7 @@ tm_publish(
DIS_tcp_cleanup(chan);

return rc;
}
} /* tm_publish() */

struct infohold
{
Expand All@@ -1187,18 +1205,18 @@ struct infohold
** <tid> is a valid task, it returns the event that the
** string specifying the info posted by <tid> is available.
*/
int
tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event /* out */
)
int tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event) /* out */
{
int rc = TM_SUCCESS;
task_info *tp;
int rc = TM_SUCCESS;
task_info *tp;
struct tcp_chan *chan = NULL;

struct infohold *ihold;
Expand Down
3 changes: 3 additions & 0 deletions src/resmom/linux/mom_mach.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2690,6 +2690,9 @@ int mom_close_poll(void)
if (proc_array != NULL)
{
free(proc_array);
proc_array = NULL;
nproc = 0;
max_proc = TBL_INC;
}

return(PBSE_NONE);
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
451 changes: 451 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions CHANGELOG
Original file line numberDiff line numberDiff line change
Expand Up@@ -73,6 +73,8 @@ c - crash b - bug fix e - enhancement f - new feature n - note
set to the login nodes. TRQ-1482.
b - Fix a bug that using -V got rid of -v. TRQ-1457.
b - Make qsub -I -x work again. TRQ-1483.
c - Fix a potential crash when getting the status of a login node in cray mode.
TRQ-1491.

4.1.3
b - fix a security loophole that potentially allowed an interactive job to run
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,7 @@ EXTRA_DIST = acinclude.m4 \
CHANGELOG \
configure.ac \
cov_file_results.pl \
current_hash \
Doxyfile \
INSTALL \
INSTALL.GNU \
Expand Down
13 changes: 8 additions & 5 deletions configure.ac
Original file line numberDiff line numberDiff line change
Expand Up@@ -69,13 +69,16 @@ dnl be created in the include directory.
AM_CONFIG_HEADER([src/include/pbs_config.h])

dnl
dnl Find our svn revision number for program outputs
dnl Find our git revision hash for program outputs
dnl
AC_PATH_PROG(svnversioncommand, svnversion)
if test "X$svnversioncommand" != "X" && test `$svnversioncommand -n '.'` != "exported"; then
AC_DEFINE_UNQUOTED(SVN_VERSION, ["`svnversion -n`"], [repository svn version])
githash="`git rev-parse HEAD`"
success=$?
if test "X$success" != "X0" ; then
AC_DEFINE_UNQUOTED(GIT_HASH, ["$githash"], [repository svn version])
else
AC_DEFINE_UNQUOTED(SVN_VERSION, ["unknown"], [repository svn version])
dnl current hash is a file checked in to the git repo in the base directory
dnl containing the most recent hash
AC_DEFINE_UNQUOTED(GIT_HASH, ["`cat current_hash`"], [repository svn version])
fi


Expand Down
1 change: 1 addition & 0 deletions current_hash
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
a2498b31a71e656959f38ce8a88024fbc869eaad
2 changes: 1 addition & 1 deletion src/cmds/pbsnodes.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -712,7 +712,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/cmds/qstat.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2207,7 +2207,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/include/pbs_job.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1087,7 +1087,7 @@ extern char *prefix_std_file(job *, dynamic_string *, int);
extern char *add_std_filename(job *, char *, int, dynamic_string *);
extern int set_jobexid(job *, pbs_attribute *, char *);
extern int site_check_user_map(job *, char *, char *, int);
int svr_dequejob(char *, int);
int svr_dequejob(job *, int);
extern int svr_enquejob(job *, int, int);
extern void svr_evaljobstate(job *, int *, int *, int);
extern void svr_mailowner(job *, int, int, char *);
Expand Down
2 changes: 2 additions & 0 deletions src/include/pbs_nodes.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -332,6 +332,8 @@ struct pbsnode
struct AvlNode *node_boards; /* private tree of numa nodes */
char *numa_str; /* comma-delimited string of processor values */
char *gpu_str; /* comma-delimited string of the number of gpus for each nodeboard */

unsigned char nd_mom_reported_down;/* notes that the mom reported its own shutdown */

unsigned char nd_is_alps_reporter;
unsigned char nd_is_alps_login;
Expand Down
120 changes: 69 additions & 51 deletions src/lib/Libifl/tm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -170,8 +170,10 @@ static event_info *event_hash[EVENT_HASH];
/*
** Find an event number or return a NULL.
*/
static event_info *
find_event(tm_event_t x)
event_info *find_event(

tm_event_t x)

{
event_info *ep;

Expand All@@ -187,10 +189,11 @@ find_event(tm_event_t x)
/*
** Delete an event.
*/
static void
del_event(event_info *ep)
{
void del_event(
event_info *ep)

{
/* unlink event from hash list */
if (ep->e_prev)
ep->e_prev->e_next = ep->e_next;
Expand DownExpand Up@@ -245,8 +248,8 @@ del_event(event_info *ep)
/*
** Create a new event number.
*/
static tm_event_t
new_event(void)
tm_event_t new_event(void)

{
static tm_event_t next_event = TM_NULL_EVENT + 1;
event_info *ep;
Expand DownExpand Up@@ -275,8 +278,12 @@ new_event(void)
/*
** Link new event number into the above hash table.
*/
static void
add_event(tm_event_t event, tm_node_id node, int type, void *info)
void add_event(

tm_event_t event,
tm_node_id node,
int type,
void *info)
{
event_info *ep, **head;

Expand DownExpand Up@@ -322,8 +329,10 @@ static task_info *task_hash[TASK_HASH];
/*
** Find a task table entry for a given task number or return a NULL.
*/
static task_info *
find_task(tm_task_id x)
task_info *find_task(

tm_task_id x)

{
task_info *tp;

Expand All@@ -340,8 +349,12 @@ find_task(tm_task_id x)
** Create a new task entry and link it into the above hash
** table.
*/
static tm_task_id
new_task(char *jobid, tm_node_id node, tm_task_id task)
tm_task_id new_task(

char *jobid,
tm_node_id node,
tm_task_id task)

{
task_info *tp, **head;

Expand DownExpand Up@@ -559,8 +572,8 @@ static int localmom(void)

static int startcom(

int com,
tm_event_t event,
int com,
tm_event_t event,
struct tcp_chan **pchan)

{
Expand DownExpand Up@@ -943,6 +956,7 @@ int tm_obit(
tm_task_id tid, /* in */
int *obitval, /* out */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
task_info *tp;
Expand DownExpand Up@@ -1002,14 +1016,14 @@ struct taskhold
** is a valid node number, it returns the event that the list of
** tasks on <node> is available.
*/
int
tm_taskinfo(
tm_node_id node, /* in */
int tm_taskinfo(

tm_node_id node, /* in */
tm_task_id *tid_list, /* out */
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event /* out */
)
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event) /* out */

{
struct taskhold *thold;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1053,11 +1067,11 @@ tm_taskinfo(
** Returns the job-relative node number that holds or held <tid>. In
** case of an error, it returns TM_ERROR_NODE.
*/
int
tm_atnode(
tm_task_id tid, /* in */
tm_node_id *node /* out */
)
int tm_atnode(

tm_task_id tid, /* in */
tm_node_id *node) /* out */

{
task_info *tp;

Expand DownExpand Up@@ -1085,12 +1099,13 @@ struct reschold
** <node> is available. It returns ERROR_EVENT otherwise.
*/
int tm_rescinfo(
tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */

tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */
tm_event_t *event) /* out */
{

{
struct reschold *rhold;
struct tcp_chan *chan = NULL;

Expand DownExpand Up@@ -1125,21 +1140,24 @@ int tm_rescinfo(
add_event(*event, node, TM_RESOURCES, (void *)rhold);

return TM_SUCCESS;
}
} /* END tm_rescinfo() */




/*
** Posts the first <nbytes> of a copy of *<info> within MOM on
** this node, and associated with this task. If <info> is
** non-NULL, it returns the event that the effort to post *<info>
** is complete. It returns ERROR_EVENT otherwise.
*/
int
tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event /* out */
)
int tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1173,7 +1191,7 @@ tm_publish(
DIS_tcp_cleanup(chan);

return rc;
}
} /* tm_publish() */

struct infohold
{
Expand All@@ -1187,18 +1205,18 @@ struct infohold
** <tid> is a valid task, it returns the event that the
** string specifying the info posted by <tid> is available.
*/
int
tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event /* out */
)
int tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event) /* out */
{
int rc = TM_SUCCESS;
task_info *tp;
int rc = TM_SUCCESS;
task_info *tp;
struct tcp_chan *chan = NULL;

struct infohold *ihold;
Expand Down
3 changes: 3 additions & 0 deletions src/resmom/linux/mom_mach.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2690,6 +2690,9 @@ int mom_close_poll(void)
if (proc_array != NULL)
{
free(proc_array);
proc_array = NULL;
nproc = 0;
max_proc = TBL_INC;
}

return(PBSE_NONE);
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
451 changes: 451 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions CHANGELOG
Original file line numberDiff line numberDiff line change
Expand Up@@ -73,6 +73,8 @@ c - crash b - bug fix e - enhancement f - new feature n - note
set to the login nodes. TRQ-1482.
b - Fix a bug that using -V got rid of -v. TRQ-1457.
b - Make qsub -I -x work again. TRQ-1483.
c - Fix a potential crash when getting the status of a login node in cray mode.
TRQ-1491.

4.1.3
b - fix a security loophole that potentially allowed an interactive job to run
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,7 @@ EXTRA_DIST = acinclude.m4 \
CHANGELOG \
configure.ac \
cov_file_results.pl \
current_hash \
Doxyfile \
INSTALL \
INSTALL.GNU \
Expand Down
13 changes: 8 additions & 5 deletions configure.ac
Original file line numberDiff line numberDiff line change
Expand Up@@ -69,13 +69,16 @@ dnl be created in the include directory.
AM_CONFIG_HEADER([src/include/pbs_config.h])

dnl
dnl Find our svn revision number for program outputs
dnl Find our git revision hash for program outputs
dnl
AC_PATH_PROG(svnversioncommand, svnversion)
if test "X$svnversioncommand" != "X" && test `$svnversioncommand -n '.'` != "exported"; then
AC_DEFINE_UNQUOTED(SVN_VERSION, ["`svnversion -n`"], [repository svn version])
githash="`git rev-parse HEAD`"
success=$?
if test "X$success" != "X0" ; then
AC_DEFINE_UNQUOTED(GIT_HASH, ["$githash"], [repository svn version])
else
AC_DEFINE_UNQUOTED(SVN_VERSION, ["unknown"], [repository svn version])
dnl current hash is a file checked in to the git repo in the base directory
dnl containing the most recent hash
AC_DEFINE_UNQUOTED(GIT_HASH, ["`cat current_hash`"], [repository svn version])
fi


Expand Down
1 change: 1 addition & 0 deletions current_hash
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
a2498b31a71e656959f38ce8a88024fbc869eaad
2 changes: 1 addition & 1 deletion src/cmds/pbsnodes.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -712,7 +712,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/cmds/qstat.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2207,7 +2207,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/include/pbs_job.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1087,7 +1087,7 @@ extern char *prefix_std_file(job *, dynamic_string *, int);
extern char *add_std_filename(job *, char *, int, dynamic_string *);
extern int set_jobexid(job *, pbs_attribute *, char *);
extern int site_check_user_map(job *, char *, char *, int);
int svr_dequejob(char *, int);
int svr_dequejob(job *, int);
extern int svr_enquejob(job *, int, int);
extern void svr_evaljobstate(job *, int *, int *, int);
extern void svr_mailowner(job *, int, int, char *);
Expand Down
2 changes: 2 additions & 0 deletions src/include/pbs_nodes.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -332,6 +332,8 @@ struct pbsnode
struct AvlNode *node_boards; /* private tree of numa nodes */
char *numa_str; /* comma-delimited string of processor values */
char *gpu_str; /* comma-delimited string of the number of gpus for each nodeboard */

unsigned char nd_mom_reported_down;/* notes that the mom reported its own shutdown */

unsigned char nd_is_alps_reporter;
unsigned char nd_is_alps_login;
Expand Down
120 changes: 69 additions & 51 deletions src/lib/Libifl/tm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -170,8 +170,10 @@ static event_info *event_hash[EVENT_HASH];
/*
** Find an event number or return a NULL.
*/
static event_info *
find_event(tm_event_t x)
event_info *find_event(

tm_event_t x)

{
event_info *ep;

Expand All@@ -187,10 +189,11 @@ find_event(tm_event_t x)
/*
** Delete an event.
*/
static void
del_event(event_info *ep)
{
void del_event(
event_info *ep)

{
/* unlink event from hash list */
if (ep->e_prev)
ep->e_prev->e_next = ep->e_next;
Expand DownExpand Up@@ -245,8 +248,8 @@ del_event(event_info *ep)
/*
** Create a new event number.
*/
static tm_event_t
new_event(void)
tm_event_t new_event(void)

{
static tm_event_t next_event = TM_NULL_EVENT + 1;
event_info *ep;
Expand DownExpand Up@@ -275,8 +278,12 @@ new_event(void)
/*
** Link new event number into the above hash table.
*/
static void
add_event(tm_event_t event, tm_node_id node, int type, void *info)
void add_event(

tm_event_t event,
tm_node_id node,
int type,
void *info)
{
event_info *ep, **head;

Expand DownExpand Up@@ -322,8 +329,10 @@ static task_info *task_hash[TASK_HASH];
/*
** Find a task table entry for a given task number or return a NULL.
*/
static task_info *
find_task(tm_task_id x)
task_info *find_task(

tm_task_id x)

{
task_info *tp;

Expand All@@ -340,8 +349,12 @@ find_task(tm_task_id x)
** Create a new task entry and link it into the above hash
** table.
*/
static tm_task_id
new_task(char *jobid, tm_node_id node, tm_task_id task)
tm_task_id new_task(

char *jobid,
tm_node_id node,
tm_task_id task)

{
task_info *tp, **head;

Expand DownExpand Up@@ -559,8 +572,8 @@ static int localmom(void)

static int startcom(

int com,
tm_event_t event,
int com,
tm_event_t event,
struct tcp_chan **pchan)

{
Expand DownExpand Up@@ -943,6 +956,7 @@ int tm_obit(
tm_task_id tid, /* in */
int *obitval, /* out */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
task_info *tp;
Expand DownExpand Up@@ -1002,14 +1016,14 @@ struct taskhold
** is a valid node number, it returns the event that the list of
** tasks on <node> is available.
*/
int
tm_taskinfo(
tm_node_id node, /* in */
int tm_taskinfo(

tm_node_id node, /* in */
tm_task_id *tid_list, /* out */
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event /* out */
)
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event) /* out */

{
struct taskhold *thold;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1053,11 +1067,11 @@ tm_taskinfo(
** Returns the job-relative node number that holds or held <tid>. In
** case of an error, it returns TM_ERROR_NODE.
*/
int
tm_atnode(
tm_task_id tid, /* in */
tm_node_id *node /* out */
)
int tm_atnode(

tm_task_id tid, /* in */
tm_node_id *node) /* out */

{
task_info *tp;

Expand DownExpand Up@@ -1085,12 +1099,13 @@ struct reschold
** <node> is available. It returns ERROR_EVENT otherwise.
*/
int tm_rescinfo(
tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */

tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */
tm_event_t *event) /* out */
{

{
struct reschold *rhold;
struct tcp_chan *chan = NULL;

Expand DownExpand Up@@ -1125,21 +1140,24 @@ int tm_rescinfo(
add_event(*event, node, TM_RESOURCES, (void *)rhold);

return TM_SUCCESS;
}
} /* END tm_rescinfo() */




/*
** Posts the first <nbytes> of a copy of *<info> within MOM on
** this node, and associated with this task. If <info> is
** non-NULL, it returns the event that the effort to post *<info>
** is complete. It returns ERROR_EVENT otherwise.
*/
int
tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event /* out */
)
int tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1173,7 +1191,7 @@ tm_publish(
DIS_tcp_cleanup(chan);

return rc;
}
} /* tm_publish() */

struct infohold
{
Expand All@@ -1187,18 +1205,18 @@ struct infohold
** <tid> is a valid task, it returns the event that the
** string specifying the info posted by <tid> is available.
*/
int
tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event /* out */
)
int tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event) /* out */
{
int rc = TM_SUCCESS;
task_info *tp;
int rc = TM_SUCCESS;
task_info *tp;
struct tcp_chan *chan = NULL;

struct infohold *ihold;
Expand Down
3 changes: 3 additions & 0 deletions src/resmom/linux/mom_mach.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2690,6 +2690,9 @@ int mom_close_poll(void)
if (proc_array != NULL)
{
free(proc_array);
proc_array = NULL;
nproc = 0;
max_proc = TBL_INC;
}

return(PBSE_NONE);
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
451 changes: 451 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions CHANGELOG
Original file line numberDiff line numberDiff line change
Expand Up@@ -73,6 +73,8 @@ c - crash b - bug fix e - enhancement f - new feature n - note
set to the login nodes. TRQ-1482.
b - Fix a bug that using -V got rid of -v. TRQ-1457.
b - Make qsub -I -x work again. TRQ-1483.
c - Fix a potential crash when getting the status of a login node in cray mode.
TRQ-1491.

4.1.3
b - fix a security loophole that potentially allowed an interactive job to run
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,7 @@ EXTRA_DIST = acinclude.m4 \
CHANGELOG \
configure.ac \
cov_file_results.pl \
current_hash \
Doxyfile \
INSTALL \
INSTALL.GNU \
Expand Down
13 changes: 8 additions & 5 deletions configure.ac
Original file line numberDiff line numberDiff line change
Expand Up@@ -69,13 +69,16 @@ dnl be created in the include directory.
AM_CONFIG_HEADER([src/include/pbs_config.h])

dnl
dnl Find our svn revision number for program outputs
dnl Find our git revision hash for program outputs
dnl
AC_PATH_PROG(svnversioncommand, svnversion)
if test "X$svnversioncommand" != "X" && test `$svnversioncommand -n '.'` != "exported"; then
AC_DEFINE_UNQUOTED(SVN_VERSION, ["`svnversion -n`"], [repository svn version])
githash="`git rev-parse HEAD`"
success=$?
if test "X$success" != "X0" ; then
AC_DEFINE_UNQUOTED(GIT_HASH, ["$githash"], [repository svn version])
else
AC_DEFINE_UNQUOTED(SVN_VERSION, ["unknown"], [repository svn version])
dnl current hash is a file checked in to the git repo in the base directory
dnl containing the most recent hash
AC_DEFINE_UNQUOTED(GIT_HASH, ["`cat current_hash`"], [repository svn version])
fi


Expand Down
1 change: 1 addition & 0 deletions current_hash
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
a2498b31a71e656959f38ce8a88024fbc869eaad
2 changes: 1 addition & 1 deletion src/cmds/pbsnodes.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -712,7 +712,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/cmds/qstat.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2207,7 +2207,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/include/pbs_job.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1087,7 +1087,7 @@ extern char *prefix_std_file(job *, dynamic_string *, int);
extern char *add_std_filename(job *, char *, int, dynamic_string *);
extern int set_jobexid(job *, pbs_attribute *, char *);
extern int site_check_user_map(job *, char *, char *, int);
int svr_dequejob(char *, int);
int svr_dequejob(job *, int);
extern int svr_enquejob(job *, int, int);
extern void svr_evaljobstate(job *, int *, int *, int);
extern void svr_mailowner(job *, int, int, char *);
Expand Down
2 changes: 2 additions & 0 deletions src/include/pbs_nodes.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -332,6 +332,8 @@ struct pbsnode
struct AvlNode *node_boards; /* private tree of numa nodes */
char *numa_str; /* comma-delimited string of processor values */
char *gpu_str; /* comma-delimited string of the number of gpus for each nodeboard */

unsigned char nd_mom_reported_down;/* notes that the mom reported its own shutdown */

unsigned char nd_is_alps_reporter;
unsigned char nd_is_alps_login;
Expand Down
120 changes: 69 additions & 51 deletions src/lib/Libifl/tm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -170,8 +170,10 @@ static event_info *event_hash[EVENT_HASH];
/*
** Find an event number or return a NULL.
*/
static event_info *
find_event(tm_event_t x)
event_info *find_event(

tm_event_t x)

{
event_info *ep;

Expand All@@ -187,10 +189,11 @@ find_event(tm_event_t x)
/*
** Delete an event.
*/
static void
del_event(event_info *ep)
{
void del_event(
event_info *ep)

{
/* unlink event from hash list */
if (ep->e_prev)
ep->e_prev->e_next = ep->e_next;
Expand DownExpand Up@@ -245,8 +248,8 @@ del_event(event_info *ep)
/*
** Create a new event number.
*/
static tm_event_t
new_event(void)
tm_event_t new_event(void)

{
static tm_event_t next_event = TM_NULL_EVENT + 1;
event_info *ep;
Expand DownExpand Up@@ -275,8 +278,12 @@ new_event(void)
/*
** Link new event number into the above hash table.
*/
static void
add_event(tm_event_t event, tm_node_id node, int type, void *info)
void add_event(

tm_event_t event,
tm_node_id node,
int type,
void *info)
{
event_info *ep, **head;

Expand DownExpand Up@@ -322,8 +329,10 @@ static task_info *task_hash[TASK_HASH];
/*
** Find a task table entry for a given task number or return a NULL.
*/
static task_info *
find_task(tm_task_id x)
task_info *find_task(

tm_task_id x)

{
task_info *tp;

Expand All@@ -340,8 +349,12 @@ find_task(tm_task_id x)
** Create a new task entry and link it into the above hash
** table.
*/
static tm_task_id
new_task(char *jobid, tm_node_id node, tm_task_id task)
tm_task_id new_task(

char *jobid,
tm_node_id node,
tm_task_id task)

{
task_info *tp, **head;

Expand DownExpand Up@@ -559,8 +572,8 @@ static int localmom(void)

static int startcom(

int com,
tm_event_t event,
int com,
tm_event_t event,
struct tcp_chan **pchan)

{
Expand DownExpand Up@@ -943,6 +956,7 @@ int tm_obit(
tm_task_id tid, /* in */
int *obitval, /* out */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
task_info *tp;
Expand DownExpand Up@@ -1002,14 +1016,14 @@ struct taskhold
** is a valid node number, it returns the event that the list of
** tasks on <node> is available.
*/
int
tm_taskinfo(
tm_node_id node, /* in */
int tm_taskinfo(

tm_node_id node, /* in */
tm_task_id *tid_list, /* out */
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event /* out */
)
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event) /* out */

{
struct taskhold *thold;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1053,11 +1067,11 @@ tm_taskinfo(
** Returns the job-relative node number that holds or held <tid>. In
** case of an error, it returns TM_ERROR_NODE.
*/
int
tm_atnode(
tm_task_id tid, /* in */
tm_node_id *node /* out */
)
int tm_atnode(

tm_task_id tid, /* in */
tm_node_id *node) /* out */

{
task_info *tp;

Expand DownExpand Up@@ -1085,12 +1099,13 @@ struct reschold
** <node> is available. It returns ERROR_EVENT otherwise.
*/
int tm_rescinfo(
tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */

tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */
tm_event_t *event) /* out */
{

{
struct reschold *rhold;
struct tcp_chan *chan = NULL;

Expand DownExpand Up@@ -1125,21 +1140,24 @@ int tm_rescinfo(
add_event(*event, node, TM_RESOURCES, (void *)rhold);

return TM_SUCCESS;
}
} /* END tm_rescinfo() */




/*
** Posts the first <nbytes> of a copy of *<info> within MOM on
** this node, and associated with this task. If <info> is
** non-NULL, it returns the event that the effort to post *<info>
** is complete. It returns ERROR_EVENT otherwise.
*/
int
tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event /* out */
)
int tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1173,7 +1191,7 @@ tm_publish(
DIS_tcp_cleanup(chan);

return rc;
}
} /* tm_publish() */

struct infohold
{
Expand All@@ -1187,18 +1205,18 @@ struct infohold
** <tid> is a valid task, it returns the event that the
** string specifying the info posted by <tid> is available.
*/
int
tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event /* out */
)
int tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event) /* out */
{
int rc = TM_SUCCESS;
task_info *tp;
int rc = TM_SUCCESS;
task_info *tp;
struct tcp_chan *chan = NULL;

struct infohold *ihold;
Expand Down
3 changes: 3 additions & 0 deletions src/resmom/linux/mom_mach.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2690,6 +2690,9 @@ int mom_close_poll(void)
if (proc_array != NULL)
{
free(proc_array);
proc_array = NULL;
nproc = 0;
max_proc = TBL_INC;
}

return(PBSE_NONE);
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
451 changes: 451 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions CHANGELOG
Original file line numberDiff line numberDiff line change
Expand Up@@ -73,6 +73,8 @@ c - crash b - bug fix e - enhancement f - new feature n - note
set to the login nodes. TRQ-1482.
b - Fix a bug that using -V got rid of -v. TRQ-1457.
b - Make qsub -I -x work again. TRQ-1483.
c - Fix a potential crash when getting the status of a login node in cray mode.
TRQ-1491.

4.1.3
b - fix a security loophole that potentially allowed an interactive job to run
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,7 @@ EXTRA_DIST = acinclude.m4 \
CHANGELOG \
configure.ac \
cov_file_results.pl \
current_hash \
Doxyfile \
INSTALL \
INSTALL.GNU \
Expand Down
13 changes: 8 additions & 5 deletions configure.ac
Original file line numberDiff line numberDiff line change
Expand Up@@ -69,13 +69,16 @@ dnl be created in the include directory.
AM_CONFIG_HEADER([src/include/pbs_config.h])

dnl
dnl Find our svn revision number for program outputs
dnl Find our git revision hash for program outputs
dnl
AC_PATH_PROG(svnversioncommand, svnversion)
if test "X$svnversioncommand" != "X" && test `$svnversioncommand -n '.'` != "exported"; then
AC_DEFINE_UNQUOTED(SVN_VERSION, ["`svnversion -n`"], [repository svn version])
githash="`git rev-parse HEAD`"
success=$?
if test "X$success" != "X0" ; then
AC_DEFINE_UNQUOTED(GIT_HASH, ["$githash"], [repository svn version])
else
AC_DEFINE_UNQUOTED(SVN_VERSION, ["unknown"], [repository svn version])
dnl current hash is a file checked in to the git repo in the base directory
dnl containing the most recent hash
AC_DEFINE_UNQUOTED(GIT_HASH, ["`cat current_hash`"], [repository svn version])
fi


Expand Down
1 change: 1 addition & 0 deletions current_hash
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
a2498b31a71e656959f38ce8a88024fbc869eaad
2 changes: 1 addition & 1 deletion src/cmds/pbsnodes.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -712,7 +712,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/cmds/qstat.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2207,7 +2207,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/include/pbs_job.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1087,7 +1087,7 @@ extern char *prefix_std_file(job *, dynamic_string *, int);
extern char *add_std_filename(job *, char *, int, dynamic_string *);
extern int set_jobexid(job *, pbs_attribute *, char *);
extern int site_check_user_map(job *, char *, char *, int);
int svr_dequejob(char *, int);
int svr_dequejob(job *, int);
extern int svr_enquejob(job *, int, int);
extern void svr_evaljobstate(job *, int *, int *, int);
extern void svr_mailowner(job *, int, int, char *);
Expand Down
2 changes: 2 additions & 0 deletions src/include/pbs_nodes.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -332,6 +332,8 @@ struct pbsnode
struct AvlNode *node_boards; /* private tree of numa nodes */
char *numa_str; /* comma-delimited string of processor values */
char *gpu_str; /* comma-delimited string of the number of gpus for each nodeboard */

unsigned char nd_mom_reported_down;/* notes that the mom reported its own shutdown */

unsigned char nd_is_alps_reporter;
unsigned char nd_is_alps_login;
Expand Down
120 changes: 69 additions & 51 deletions src/lib/Libifl/tm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -170,8 +170,10 @@ static event_info *event_hash[EVENT_HASH];
/*
** Find an event number or return a NULL.
*/
static event_info *
find_event(tm_event_t x)
event_info *find_event(

tm_event_t x)

{
event_info *ep;

Expand All@@ -187,10 +189,11 @@ find_event(tm_event_t x)
/*
** Delete an event.
*/
static void
del_event(event_info *ep)
{
void del_event(
event_info *ep)

{
/* unlink event from hash list */
if (ep->e_prev)
ep->e_prev->e_next = ep->e_next;
Expand DownExpand Up@@ -245,8 +248,8 @@ del_event(event_info *ep)
/*
** Create a new event number.
*/
static tm_event_t
new_event(void)
tm_event_t new_event(void)

{
static tm_event_t next_event = TM_NULL_EVENT + 1;
event_info *ep;
Expand DownExpand Up@@ -275,8 +278,12 @@ new_event(void)
/*
** Link new event number into the above hash table.
*/
static void
add_event(tm_event_t event, tm_node_id node, int type, void *info)
void add_event(

tm_event_t event,
tm_node_id node,
int type,
void *info)
{
event_info *ep, **head;

Expand DownExpand Up@@ -322,8 +329,10 @@ static task_info *task_hash[TASK_HASH];
/*
** Find a task table entry for a given task number or return a NULL.
*/
static task_info *
find_task(tm_task_id x)
task_info *find_task(

tm_task_id x)

{
task_info *tp;

Expand All@@ -340,8 +349,12 @@ find_task(tm_task_id x)
** Create a new task entry and link it into the above hash
** table.
*/
static tm_task_id
new_task(char *jobid, tm_node_id node, tm_task_id task)
tm_task_id new_task(

char *jobid,
tm_node_id node,
tm_task_id task)

{
task_info *tp, **head;

Expand DownExpand Up@@ -559,8 +572,8 @@ static int localmom(void)

static int startcom(

int com,
tm_event_t event,
int com,
tm_event_t event,
struct tcp_chan **pchan)

{
Expand DownExpand Up@@ -943,6 +956,7 @@ int tm_obit(
tm_task_id tid, /* in */
int *obitval, /* out */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
task_info *tp;
Expand DownExpand Up@@ -1002,14 +1016,14 @@ struct taskhold
** is a valid node number, it returns the event that the list of
** tasks on <node> is available.
*/
int
tm_taskinfo(
tm_node_id node, /* in */
int tm_taskinfo(

tm_node_id node, /* in */
tm_task_id *tid_list, /* out */
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event /* out */
)
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event) /* out */

{
struct taskhold *thold;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1053,11 +1067,11 @@ tm_taskinfo(
** Returns the job-relative node number that holds or held <tid>. In
** case of an error, it returns TM_ERROR_NODE.
*/
int
tm_atnode(
tm_task_id tid, /* in */
tm_node_id *node /* out */
)
int tm_atnode(

tm_task_id tid, /* in */
tm_node_id *node) /* out */

{
task_info *tp;

Expand DownExpand Up@@ -1085,12 +1099,13 @@ struct reschold
** <node> is available. It returns ERROR_EVENT otherwise.
*/
int tm_rescinfo(
tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */

tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */
tm_event_t *event) /* out */
{

{
struct reschold *rhold;
struct tcp_chan *chan = NULL;

Expand DownExpand Up@@ -1125,21 +1140,24 @@ int tm_rescinfo(
add_event(*event, node, TM_RESOURCES, (void *)rhold);

return TM_SUCCESS;
}
} /* END tm_rescinfo() */




/*
** Posts the first <nbytes> of a copy of *<info> within MOM on
** this node, and associated with this task. If <info> is
** non-NULL, it returns the event that the effort to post *<info>
** is complete. It returns ERROR_EVENT otherwise.
*/
int
tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event /* out */
)
int tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1173,7 +1191,7 @@ tm_publish(
DIS_tcp_cleanup(chan);

return rc;
}
} /* tm_publish() */

struct infohold
{
Expand All@@ -1187,18 +1205,18 @@ struct infohold
** <tid> is a valid task, it returns the event that the
** string specifying the info posted by <tid> is available.
*/
int
tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event /* out */
)
int tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event) /* out */
{
int rc = TM_SUCCESS;
task_info *tp;
int rc = TM_SUCCESS;
task_info *tp;
struct tcp_chan *chan = NULL;

struct infohold *ihold;
Expand Down
3 changes: 3 additions & 0 deletions src/resmom/linux/mom_mach.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2690,6 +2690,9 @@ int mom_close_poll(void)
if (proc_array != NULL)
{
free(proc_array);
proc_array = NULL;
nproc = 0;
max_proc = TBL_INC;
}

return(PBSE_NONE);
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
451 changes: 451 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions CHANGELOG
Original file line numberDiff line numberDiff line change
Expand Up@@ -73,6 +73,8 @@ c - crash b - bug fix e - enhancement f - new feature n - note
set to the login nodes. TRQ-1482.
b - Fix a bug that using -V got rid of -v. TRQ-1457.
b - Make qsub -I -x work again. TRQ-1483.
c - Fix a potential crash when getting the status of a login node in cray mode.
TRQ-1491.

4.1.3
b - fix a security loophole that potentially allowed an interactive job to run
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,7 @@ EXTRA_DIST = acinclude.m4 \
CHANGELOG \
configure.ac \
cov_file_results.pl \
current_hash \
Doxyfile \
INSTALL \
INSTALL.GNU \
Expand Down
13 changes: 8 additions & 5 deletions configure.ac
Original file line numberDiff line numberDiff line change
Expand Up@@ -69,13 +69,16 @@ dnl be created in the include directory.
AM_CONFIG_HEADER([src/include/pbs_config.h])

dnl
dnl Find our svn revision number for program outputs
dnl Find our git revision hash for program outputs
dnl
AC_PATH_PROG(svnversioncommand, svnversion)
if test "X$svnversioncommand" != "X" && test `$svnversioncommand -n '.'` != "exported"; then
AC_DEFINE_UNQUOTED(SVN_VERSION, ["`svnversion -n`"], [repository svn version])
githash="`git rev-parse HEAD`"
success=$?
if test "X$success" != "X0" ; then
AC_DEFINE_UNQUOTED(GIT_HASH, ["$githash"], [repository svn version])
else
AC_DEFINE_UNQUOTED(SVN_VERSION, ["unknown"], [repository svn version])
dnl current hash is a file checked in to the git repo in the base directory
dnl containing the most recent hash
AC_DEFINE_UNQUOTED(GIT_HASH, ["`cat current_hash`"], [repository svn version])
fi


Expand Down
1 change: 1 addition & 0 deletions current_hash
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
a2498b31a71e656959f38ce8a88024fbc869eaad
2 changes: 1 addition & 1 deletion src/cmds/pbsnodes.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -712,7 +712,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/cmds/qstat.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2207,7 +2207,7 @@ int main(
if ((optarg != NULL) && !strcmp(optarg, "version"))
{
fprintf(stderr, "Version: %s\nRevision: %s\n",
PACKAGE_VERSION, SVN_VERSION);
PACKAGE_VERSION, GIT_HASH);

exit(0);
}
Expand Down
2 changes: 1 addition & 1 deletion src/include/pbs_job.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1087,7 +1087,7 @@ extern char *prefix_std_file(job *, dynamic_string *, int);
extern char *add_std_filename(job *, char *, int, dynamic_string *);
extern int set_jobexid(job *, pbs_attribute *, char *);
extern int site_check_user_map(job *, char *, char *, int);
int svr_dequejob(char *, int);
int svr_dequejob(job *, int);
extern int svr_enquejob(job *, int, int);
extern void svr_evaljobstate(job *, int *, int *, int);
extern void svr_mailowner(job *, int, int, char *);
Expand Down
2 changes: 2 additions & 0 deletions src/include/pbs_nodes.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -332,6 +332,8 @@ struct pbsnode
struct AvlNode *node_boards; /* private tree of numa nodes */
char *numa_str; /* comma-delimited string of processor values */
char *gpu_str; /* comma-delimited string of the number of gpus for each nodeboard */

unsigned char nd_mom_reported_down;/* notes that the mom reported its own shutdown */

unsigned char nd_is_alps_reporter;
unsigned char nd_is_alps_login;
Expand Down
120 changes: 69 additions & 51 deletions src/lib/Libifl/tm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -170,8 +170,10 @@ static event_info *event_hash[EVENT_HASH];
/*
** Find an event number or return a NULL.
*/
static event_info *
find_event(tm_event_t x)
event_info *find_event(

tm_event_t x)

{
event_info *ep;

Expand All@@ -187,10 +189,11 @@ find_event(tm_event_t x)
/*
** Delete an event.
*/
static void
del_event(event_info *ep)
{
void del_event(
event_info *ep)

{
/* unlink event from hash list */
if (ep->e_prev)
ep->e_prev->e_next = ep->e_next;
Expand DownExpand Up@@ -245,8 +248,8 @@ del_event(event_info *ep)
/*
** Create a new event number.
*/
static tm_event_t
new_event(void)
tm_event_t new_event(void)

{
static tm_event_t next_event = TM_NULL_EVENT + 1;
event_info *ep;
Expand DownExpand Up@@ -275,8 +278,12 @@ new_event(void)
/*
** Link new event number into the above hash table.
*/
static void
add_event(tm_event_t event, tm_node_id node, int type, void *info)
void add_event(

tm_event_t event,
tm_node_id node,
int type,
void *info)
{
event_info *ep, **head;

Expand DownExpand Up@@ -322,8 +329,10 @@ static task_info *task_hash[TASK_HASH];
/*
** Find a task table entry for a given task number or return a NULL.
*/
static task_info *
find_task(tm_task_id x)
task_info *find_task(

tm_task_id x)

{
task_info *tp;

Expand All@@ -340,8 +349,12 @@ find_task(tm_task_id x)
** Create a new task entry and link it into the above hash
** table.
*/
static tm_task_id
new_task(char *jobid, tm_node_id node, tm_task_id task)
tm_task_id new_task(

char *jobid,
tm_node_id node,
tm_task_id task)

{
task_info *tp, **head;

Expand DownExpand Up@@ -559,8 +572,8 @@ static int localmom(void)

static int startcom(

int com,
tm_event_t event,
int com,
tm_event_t event,
struct tcp_chan **pchan)

{
Expand DownExpand Up@@ -943,6 +956,7 @@ int tm_obit(
tm_task_id tid, /* in */
int *obitval, /* out */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
task_info *tp;
Expand DownExpand Up@@ -1002,14 +1016,14 @@ struct taskhold
** is a valid node number, it returns the event that the list of
** tasks on <node> is available.
*/
int
tm_taskinfo(
tm_node_id node, /* in */
int tm_taskinfo(

tm_node_id node, /* in */
tm_task_id *tid_list, /* out */
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event /* out */
)
int list_size, /* in */
int *ntasks, /* out */
tm_event_t *event) /* out */

{
struct taskhold *thold;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1053,11 +1067,11 @@ tm_taskinfo(
** Returns the job-relative node number that holds or held <tid>. In
** case of an error, it returns TM_ERROR_NODE.
*/
int
tm_atnode(
tm_task_id tid, /* in */
tm_node_id *node /* out */
)
int tm_atnode(

tm_task_id tid, /* in */
tm_node_id *node) /* out */

{
task_info *tp;

Expand DownExpand Up@@ -1085,12 +1099,13 @@ struct reschold
** <node> is available. It returns ERROR_EVENT otherwise.
*/
int tm_rescinfo(
tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */

tm_node_id node, /* in */
char *resource, /* out */
int len, /* in */
tm_event_t *event) /* out */
{

{
struct reschold *rhold;
struct tcp_chan *chan = NULL;

Expand DownExpand Up@@ -1125,21 +1140,24 @@ int tm_rescinfo(
add_event(*event, node, TM_RESOURCES, (void *)rhold);

return TM_SUCCESS;
}
} /* END tm_rescinfo() */




/*
** Posts the first <nbytes> of a copy of *<info> within MOM on
** this node, and associated with this task. If <info> is
** non-NULL, it returns the event that the effort to post *<info>
** is complete. It returns ERROR_EVENT otherwise.
*/
int
tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event /* out */
)
int tm_publish(
char *name, /* in */
void *info, /* in */
int len, /* in */
tm_event_t *event) /* out */

{
int rc = TM_SUCCESS;
struct tcp_chan *chan = NULL;
Expand DownExpand Up@@ -1173,7 +1191,7 @@ tm_publish(
DIS_tcp_cleanup(chan);

return rc;
}
} /* tm_publish() */

struct infohold
{
Expand All@@ -1187,18 +1205,18 @@ struct infohold
** <tid> is a valid task, it returns the event that the
** string specifying the info posted by <tid> is available.
*/
int
tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event /* out */
)
int tm_subscribe(
tm_task_id tid, /* in */
char *name, /* in */
void *info, /* out */
int len, /* in */
int *info_len,/* out */
tm_event_t *event) /* out */
{
int rc = TM_SUCCESS;
task_info *tp;
int rc = TM_SUCCESS;
task_info *tp;
struct tcp_chan *chan = NULL;

struct infohold *ihold;
Expand Down
3 changes: 3 additions & 0 deletions src/resmom/linux/mom_mach.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -2690,6 +2690,9 @@ int mom_close_poll(void)
if (proc_array != NULL)
{
free(proc_array);
proc_array = NULL;
nproc = 0;
max_proc = TBL_INC;
}

return(PBSE_NONE);
Expand Down
Loading