Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-06-20 08:46:38

0001 /*****************************************************************************\
0002  *  slurm_errno.h - error codes and functions for slurm
0003  ******************************************************************************
0004  *  Copyright (C) 2002-2007 The Regents of the University of California.
0005  *  Copyright (C) 2008-2009 Lawrence Livermore National Security.
0006  *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
0007  *  Written by Kevin Tew <tew1@llnl.gov>,
0008  *  Jim Garlick <garlick@llnl.gov>, et. al.
0009  *  CODE-OCEC-09-009. All rights reserved.
0010  *
0011  *  This file is part of Slurm, a resource management program.
0012  *  For details, see <https://slurm.schedmd.com/>.
0013  *  Please also read the included file: DISCLAIMER.
0014  *
0015  *  Slurm is free software; you can redistribute it and/or modify it under
0016  *  the terms of the GNU General Public License as published by the Free
0017  *  Software Foundation; either version 2 of the License, or (at your option)
0018  *  any later version.
0019  *
0020  *  In addition, as a special exception, the copyright holders give permission
0021  *  to link the code of portions of this program with the OpenSSL library under
0022  *  certain conditions as described in each individual source file, and
0023  *  distribute linked combinations including the two. You must obey the GNU
0024  *  General Public License in all respects for all of the code used other than
0025  *  OpenSSL. If you modify file(s) with this exception, you may extend this
0026  *  exception to your version of the file(s), but you are not obligated to do
0027  *  so. If you do not wish to do so, delete this exception statement from your
0028  *  version.  If you delete this exception statement from all source files in
0029  *  the program, then also delete it here.
0030  *
0031  *  Slurm is distributed in the hope that it will be useful, but WITHOUT ANY
0032  *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
0033  *  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
0034  *  details.
0035  *
0036  *  You should have received a copy of the GNU General Public License along
0037  *  with Slurm; if not, write to the Free Software Foundation, Inc.,
0038  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA.
0039 \*****************************************************************************/
0040 #ifndef _SLURM_ERRNO_H
0041 #define _SLURM_ERRNO_H
0042 
0043 #ifdef __cplusplus
0044 extern "C" {
0045 #endif
0046 
0047 #include <errno.h>
0048 
0049 /* set errno to the specified value - then return -1 */
0050 #define slurm_seterrno_ret(errnum) do { \
0051     slurm_seterrno(errnum);         \
0052     return (errnum ? -1 : 0);       \
0053     } while (0)
0054 
0055 /* general return codes */
0056 #define SLURM_SUCCESS   0
0057 #define ESPANK_SUCCESS 0
0058 #define SLURM_ERROR    -1
0059 
0060 typedef enum {
0061     /* General Message error codes */
0062     SLURM_UNEXPECTED_MSG_ERROR =            1000,
0063     SLURM_COMMUNICATIONS_CONNECTION_ERROR,
0064     SLURM_COMMUNICATIONS_SEND_ERROR,
0065     SLURM_COMMUNICATIONS_RECEIVE_ERROR,
0066     SLURM_COMMUNICATIONS_SHUTDOWN_ERROR,
0067     SLURM_PROTOCOL_VERSION_ERROR,
0068     SLURM_PROTOCOL_IO_STREAM_VERSION_ERROR,
0069     SLURM_PROTOCOL_AUTHENTICATION_ERROR,
0070     SLURM_PROTOCOL_INSANE_MSG_LENGTH,
0071     SLURM_MPI_PLUGIN_NAME_INVALID,
0072     SLURM_MPI_PLUGIN_PRELAUNCH_SETUP_FAILED,
0073     SLURM_PLUGIN_NAME_INVALID,
0074     SLURM_UNKNOWN_FORWARD_ADDR,
0075     SLURM_COMMUNICATIONS_MISSING_SOCKET_ERROR,
0076 
0077     /* communication failures to/from slurmctld */
0078     SLURMCTLD_COMMUNICATIONS_CONNECTION_ERROR =     1800,
0079     SLURMCTLD_COMMUNICATIONS_SEND_ERROR,
0080     SLURMCTLD_COMMUNICATIONS_RECEIVE_ERROR,
0081     SLURMCTLD_COMMUNICATIONS_SHUTDOWN_ERROR,
0082     SLURMCTLD_COMMUNICATIONS_BACKOFF,
0083 
0084     /* _info.c/communication layer RESPONSE_SLURM_RC message codes */
0085     SLURM_NO_CHANGE_IN_DATA =           1900,
0086 
0087     /* slurmctld error codes */
0088     ESLURM_INVALID_PARTITION_NAME =         2000,
0089     ESLURM_DEFAULT_PARTITION_NOT_SET,
0090     ESLURM_ACCESS_DENIED,
0091     ESLURM_JOB_MISSING_REQUIRED_PARTITION_GROUP,
0092     ESLURM_REQUESTED_NODES_NOT_IN_PARTITION,
0093     ESLURM_TOO_MANY_REQUESTED_CPUS,
0094     ESLURM_INVALID_NODE_COUNT,
0095     ESLURM_ERROR_ON_DESC_TO_RECORD_COPY,
0096     ESLURM_JOB_MISSING_SIZE_SPECIFICATION,
0097     ESLURM_JOB_SCRIPT_MISSING,
0098     ESLURM_USER_ID_MISSING =            2010,
0099     ESLURM_DUPLICATE_JOB_ID,
0100     ESLURM_PATHNAME_TOO_LONG,
0101     ESLURM_NOT_TOP_PRIORITY,
0102     ESLURM_REQUESTED_NODE_CONFIG_UNAVAILABLE,
0103     ESLURM_REQUESTED_PART_CONFIG_UNAVAILABLE,
0104     ESLURM_NODES_BUSY,
0105     ESLURM_INVALID_JOB_ID,
0106     ESLURM_INVALID_NODE_NAME,
0107     ESLURM_WRITING_TO_FILE,
0108     ESLURM_TRANSITION_STATE_NO_UPDATE =     2020,
0109     ESLURM_ALREADY_DONE,
0110     ESLURM_INTERCONNECT_FAILURE,
0111     ESLURM_BAD_DIST,
0112     ESLURM_JOB_PENDING,
0113     ESLURM_BAD_TASK_COUNT,
0114     ESLURM_INVALID_JOB_CREDENTIAL,
0115     ESLURM_IN_STANDBY_MODE,
0116     ESLURM_INVALID_NODE_STATE,
0117     ESLURM_INVALID_FEATURE,
0118     ESLURM_INVALID_AUTHTYPE_CHANGE =        2030,
0119     ESLURM_ACTIVE_FEATURE_NOT_SUBSET,
0120     ESLURM_INVALID_SCHEDTYPE_CHANGE,
0121     ESLURM_INVALID_SELECTTYPE_CHANGE,
0122     ESLURM_INVALID_SWITCHTYPE_CHANGE,
0123     ESLURM_FRAGMENTATION,
0124     ESLURM_NOT_SUPPORTED,
0125     ESLURM_DISABLED,
0126     ESLURM_DEPENDENCY,
0127     ESLURM_BATCH_ONLY,
0128     ESLURM_LICENSES_UNAVAILABLE =           2040,
0129     ESLURM_TAKEOVER_NO_HEARTBEAT,
0130     ESLURM_JOB_HELD,
0131     ESLURM_INVALID_CRED_TYPE_CHANGE,
0132     ESLURM_INVALID_TASK_MEMORY,
0133     ESLURM_INVALID_ACCOUNT,
0134     ESLURM_INVALID_PARENT_ACCOUNT,
0135     ESLURM_SAME_PARENT_ACCOUNT,
0136     ESLURM_INVALID_LICENSES,
0137     ESLURM_NEED_RESTART,
0138     ESLURM_ACCOUNTING_POLICY =          2050,
0139     ESLURM_INVALID_TIME_LIMIT,
0140     ESLURM_RESERVATION_ACCESS,
0141     ESLURM_RESERVATION_INVALID,
0142     ESLURM_INVALID_TIME_VALUE,
0143     ESLURM_RESERVATION_BUSY,
0144     ESLURM_RESERVATION_NOT_USABLE,
0145     ESLURM_INVALID_WCKEY,
0146     ESLURM_RESERVATION_OVERLAP,
0147     ESLURM_PORTS_BUSY,
0148     ESLURM_PORTS_INVALID =              2060,
0149     ESLURM_PROLOG_RUNNING,
0150     ESLURM_NO_STEPS,
0151     ESLURM_MISSING_WORK_DIR,
0152 
0153     ESLURM_INVALID_QOS =                2066,
0154     ESLURM_QOS_PREEMPTION_LOOP,
0155     ESLURM_NODE_NOT_AVAIL,
0156     ESLURM_INVALID_CPU_COUNT,
0157     ESLURM_PARTITION_NOT_AVAIL =            2070,
0158     ESLURM_CIRCULAR_DEPENDENCY,
0159     ESLURM_INVALID_GRES,
0160     ESLURM_JOB_NOT_PENDING,
0161     ESLURM_QOS_THRES,
0162     ESLURM_PARTITION_IN_USE,
0163     ESLURM_STEP_LIMIT,
0164     ESLURM_JOB_SUSPENDED,
0165     ESLURM_CAN_NOT_START_IMMEDIATELY,
0166     ESLURM_INTERCONNECT_BUSY,
0167     ESLURM_RESERVATION_EMPTY =          2080,
0168     ESLURM_INVALID_ARRAY,
0169     ESLURM_RESERVATION_NAME_DUP,
0170     ESLURM_JOB_STARTED,
0171     ESLURM_JOB_FINISHED,
0172     ESLURM_JOB_NOT_RUNNING,
0173     ESLURM_JOB_NOT_PENDING_NOR_RUNNING,
0174     ESLURM_JOB_NOT_SUSPENDED,
0175     ESLURM_JOB_NOT_FINISHED,
0176     ESLURM_TRIGGER_DUP,
0177     ESLURM_INTERNAL =               2090,
0178     ESLURM_INVALID_BURST_BUFFER_CHANGE,
0179     ESLURM_BURST_BUFFER_PERMISSION,
0180     ESLURM_BURST_BUFFER_LIMIT,
0181     ESLURM_INVALID_BURST_BUFFER_REQUEST,
0182     ESLURM_PRIO_RESET_FAIL,
0183     ESLURM_CANNOT_MODIFY_CRON_JOB,
0184     ESLURM_INVALID_JOB_CONTAINER_CHANGE,
0185     ESLURM_CANNOT_CANCEL_CRON_JOB,
0186 
0187     ESLURM_INVALID_MCS_LABEL =          2099,
0188     ESLURM_BURST_BUFFER_WAIT =          2100,
0189     ESLURM_PARTITION_DOWN,
0190     ESLURM_DUPLICATE_GRES,
0191     ESLURM_JOB_SETTING_DB_INX,
0192     ESLURM_RSV_ALREADY_STARTED,
0193     ESLURM_SUBMISSIONS_DISABLED,
0194     ESLURM_NOT_HET_JOB,
0195     ESLURM_NOT_HET_JOB_LEADER,
0196     ESLURM_NOT_WHOLE_HET_JOB,
0197     ESLURM_CORE_RESERVATION_UPDATE,
0198     ESLURM_DUPLICATE_STEP_ID =          2110,
0199     ESLURM_INVALID_CORE_CNT,
0200     ESLURM_X11_NOT_AVAIL,
0201     ESLURM_GROUP_ID_MISSING,
0202     ESLURM_BATCH_CONSTRAINT,
0203     ESLURM_INVALID_TRES,
0204     ESLURM_INVALID_TRES_BILLING_WEIGHTS,
0205     ESLURM_INVALID_JOB_DEFAULTS,
0206     ESLURM_RESERVATION_MAINT,
0207     ESLURM_INVALID_GRES_TYPE,
0208     ESLURM_REBOOT_IN_PROGRESS =         2120,
0209     ESLURM_MULTI_KNL_CONSTRAINT,
0210     ESLURM_UNSUPPORTED_GRES,
0211     ESLURM_INVALID_NICE,
0212     ESLURM_INVALID_TIME_MIN_LIMIT,
0213     ESLURM_DEFER,
0214     ESLURM_CONFIGLESS_DISABLED,
0215     ESLURM_ENVIRONMENT_MISSING,
0216     ESLURM_RESERVATION_NO_SKIP,
0217     ESLURM_RESERVATION_USER_GROUP,
0218     ESLURM_PARTITION_ASSOC =            2130,
0219     ESLURM_IN_STANDBY_USE_BACKUP,
0220     ESLURM_BAD_THREAD_PER_CORE,
0221     ESLURM_INVALID_PREFER,
0222     ESLURM_INSUFFICIENT_GRES,
0223     ESLURM_INVALID_CONTAINER_ID,
0224     ESLURM_EMPTY_JOB_ID,
0225     ESLURM_INVALID_JOB_ID_ZERO,
0226     ESLURM_INVALID_JOB_ID_NEGATIVE,
0227     ESLURM_INVALID_JOB_ID_TOO_LARGE,
0228     ESLURM_INVALID_JOB_ID_NON_NUMERIC,
0229     ESLURM_EMPTY_JOB_ARRAY_ID,
0230     ESLURM_INVALID_JOB_ARRAY_ID_NEGATIVE,
0231     ESLURM_INVALID_JOB_ARRAY_ID_TOO_LARGE,
0232     ESLURM_INVALID_JOB_ARRAY_ID_NON_NUMERIC,
0233     ESLURM_INVALID_HET_JOB_AND_ARRAY,
0234     ESLURM_EMPTY_HET_JOB_COMP,
0235     ESLURM_INVALID_HET_JOB_COMP_NEGATIVE,
0236     ESLURM_INVALID_HET_JOB_COMP_TOO_LARGE,
0237     ESLURM_INVALID_HET_JOB_COMP_NON_NUMERIC,
0238     ESLURM_EMPTY_STEP_ID,
0239     ESLURM_INVALID_STEP_ID_NEGATIVE,
0240     ESLURM_INVALID_STEP_ID_TOO_LARGE,
0241     ESLURM_INVALID_STEP_ID_NON_NUMERIC,
0242     ESLURM_EMPTY_HET_STEP,
0243     ESLURM_INVALID_HET_STEP_ZERO,
0244     ESLURM_INVALID_HET_STEP_NEGATIVE,
0245     ESLURM_INVALID_HET_STEP_TOO_LARGE,
0246     ESLURM_INVALID_HET_STEP_NON_NUMERIC,
0247     ESLURM_INVALID_HET_STEP_JOB,
0248     ESLURM_JOB_TIMEOUT_KILLED,
0249     ESLURM_JOB_NODE_FAIL_KILLED,
0250     ESLURM_EMPTY_LIST,
0251     ESLURM_GROUP_ID_INVALID,
0252     ESLURM_GROUP_ID_UNKNOWN,
0253     ESLURM_USER_ID_INVALID,
0254     ESLURM_USER_ID_UNKNOWN,
0255     ESLURM_INVALID_ASSOC,
0256     ESLURM_NODE_ALREADY_EXISTS,
0257     ESLURM_NODE_TABLE_FULL,
0258     ESLURM_INVALID_RELATIVE_QOS,
0259     ESLURM_INVALID_EXTRA,
0260 
0261     /* SPANK errors */
0262     ESPANK_ERROR =                  3000,
0263     ESPANK_BAD_ARG,
0264     ESPANK_NOT_TASK,
0265     ESPANK_ENV_EXISTS,
0266     ESPANK_ENV_NOEXIST,
0267     ESPANK_NOSPACE,
0268     ESPANK_NOT_REMOTE,
0269     ESPANK_NOEXIST,
0270     ESPANK_NOT_EXECD,
0271     ESPANK_NOT_AVAIL,
0272     ESPANK_NOT_LOCAL,
0273 
0274     /* slurmd error codes */
0275     ESLURMD_KILL_TASK_FAILED =          4001,
0276     ESLURMD_KILL_JOB_ALREADY_COMPLETE,
0277     ESLURMD_INVALID_ACCT_FREQ,
0278     ESLURMD_INVALID_JOB_CREDENTIAL,
0279 
0280     ESLURMD_CREDENTIAL_EXPIRED =            4007,
0281     ESLURMD_CREDENTIAL_REVOKED,
0282     ESLURMD_CREDENTIAL_REPLAYED,
0283     ESLURMD_CREATE_BATCH_DIR_ERROR =        4010,
0284     ESLURMD_SETUP_ENVIRONMENT_ERROR =       4014,
0285     ESLURMD_SET_UID_OR_GID_ERROR =          4016,
0286     ESLURMD_EXECVE_FAILED =             4020,
0287     ESLURMD_IO_ERROR,
0288     ESLURMD_PROLOG_FAILED,
0289     ESLURMD_EPILOG_FAILED,
0290 
0291     ESLURMD_TOOMANYSTEPS =              4025,
0292     ESLURMD_STEP_EXISTS,
0293     ESLURMD_JOB_NOTRUNNING,
0294     ESLURMD_STEP_SUSPENDED,
0295     ESLURMD_STEP_NOTSUSPENDED,
0296     ESLURMD_INVALID_SOCKET_NAME_LEN =       4030,
0297     ESLURMD_CONTAINER_RUNTIME_INVALID,
0298     ESLURMD_CPU_BIND_ERROR,
0299     ESLURMD_CPU_LAYOUT_ERROR,
0300 
0301     /* socket specific Slurm communications error */
0302     ESLURM_PROTOCOL_INCOMPLETE_PACKET = 5003,
0303     SLURM_PROTOCOL_SOCKET_IMPL_TIMEOUT ,
0304     SLURM_PROTOCOL_SOCKET_ZERO_BYTES_SENT,
0305 
0306     /* slurm_auth errors */
0307     ESLURM_AUTH_CRED_INVALID    = 6000,
0308     ESLURM_AUTH_BADARG      = 6004,
0309     ESLURM_AUTH_UNPACK      = 6007,
0310     ESLURM_AUTH_SKIP,
0311     ESLURM_AUTH_UNABLE_TO_GENERATE_TOKEN,
0312 
0313     /* accounting errors */
0314     ESLURM_DB_CONNECTION            = 7000,
0315     ESLURM_JOBS_RUNNING_ON_ASSOC,
0316     ESLURM_CLUSTER_DELETED,
0317     ESLURM_ONE_CHANGE,
0318     ESLURM_BAD_NAME,
0319     ESLURM_OVER_ALLOCATE,
0320     ESLURM_RESULT_TOO_LARGE,
0321     ESLURM_DB_QUERY_TOO_WIDE,
0322     ESLURM_DB_CONNECTION_INVALID,
0323     ESLURM_NO_REMOVE_DEFAULT_ACCOUNT,
0324     ESLURM_BAD_SQL,
0325     ESLURM_NO_REMOVE_DEFAULT_QOS,
0326 
0327     /* Federation Errors */
0328     ESLURM_FED_CLUSTER_MAX_CNT              = 7100,
0329     ESLURM_FED_CLUSTER_MULTIPLE_ASSIGNMENT,
0330     ESLURM_INVALID_CLUSTER_FEATURE,
0331     ESLURM_JOB_NOT_FEDERATED,
0332     ESLURM_INVALID_CLUSTER_NAME,
0333     ESLURM_FED_JOB_LOCK,
0334     ESLURM_FED_NO_VALID_CLUSTERS,
0335 
0336     /* plugin and custom errors */
0337     ESLURM_MISSING_TIME_LIMIT       = 8000,
0338     ESLURM_INVALID_KNL,
0339     ESLURM_PLUGIN_INVALID,
0340     ESLURM_PLUGIN_INCOMPLETE,
0341     ESLURM_PLUGIN_NOT_LOADED,
0342     ESLURM_PLUGIN_NOTFOUND,
0343     ESLURM_PLUGIN_ACCESS_ERROR,
0344     ESLURM_PLUGIN_DLOPEN_FAILED,
0345     ESLURM_PLUGIN_INIT_FAILED,
0346     ESLURM_PLUGIN_MISSING_NAME,
0347     ESLURM_PLUGIN_BAD_VERSION,
0348 
0349     /* REST errors */
0350     ESLURM_REST_INVALID_QUERY = 9000,
0351     ESLURM_REST_FAIL_PARSING,
0352     ESLURM_REST_INVALID_JOBS_DESC,
0353     ESLURM_REST_EMPTY_RESULT,
0354     ESLURM_REST_MISSING_UID,
0355     ESLURM_REST_MISSING_GID,
0356 
0357     /* data_t errors */
0358     ESLURM_DATA_PATH_NOT_FOUND = 9200,
0359     ESLURM_DATA_PTR_NULL,
0360     ESLURM_DATA_CONV_FAILED,
0361     ESLURM_DATA_REGEX_COMPILE,
0362     ESLURM_DATA_UNKNOWN_MIME_TYPE,
0363     ESLURM_DATA_TOO_LARGE,
0364     ESLURM_DATA_FLAGS_INVALID_TYPE,
0365     ESLURM_DATA_FLAGS_INVALID,
0366     ESLURM_DATA_EXPECTED_LIST,
0367     ESLURM_DATA_EXPECTED_DICT,
0368     ESLURM_DATA_AMBIGUOUS_MODIFY,
0369     ESLURM_DATA_AMBIGUOUS_QUERY,
0370     ESLURM_DATA_PARSE_NOTHING,
0371     ESLURM_DATA_INVALID_PARSER,
0372 
0373     /* container errors */
0374     ESLURM_CONTAINER_NOT_CONFIGURED = 10000,
0375 } slurm_err_t;
0376 
0377 /* Type for error string table entries */
0378 typedef struct {
0379     int xe_number;
0380     char *xe_name;
0381     char *xe_message;
0382 } slurm_errtab_t;
0383 
0384 extern slurm_errtab_t slurm_errtab[];
0385 extern unsigned int slurm_errtab_size;
0386 
0387 /* look up an errno value */
0388 char * slurm_strerror(int errnum);
0389 
0390 /* set an errno value */
0391 void slurm_seterrno(int errnum);
0392 
0393 /* get an errno value */
0394 int slurm_get_errno(void);
0395 
0396 /* print message: error string for current errno value */
0397 void slurm_perror(const char *msg);
0398 
0399 #ifdef __cplusplus
0400 }
0401 #endif
0402 
0403 #endif /* !_SLURM_ERRNO_H */