HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 2728 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 2728.


Report 2728 Actions


    Problem Report Number 2728
    Submitter's Classification Specification problem
    State Resolved
    Resolution Permanent Interpretation (PIN)
    Problem Resolution ID PIN.X.0296
    Raised 2020-10-26 18:06
    Updated 2020-10-26 12:09
    Published 2020-10-26 12:09
    Product Standard Internationalised System Calls and Libraries Extended (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 5.3.19
    Test Identification CAPI.os/procenv/setrlimit/T.setrlimit{1,2,3,4,5,8,10,11,18,19,20,21,28,29
    }
    Specification System Interfaces and Libraries Issue 4 Version 2
    Location in Spec page 269 of C435
    Problem Summary VSU
    /tset/CAPI.os/procenv/setrlimit/T.setrlimit{1,2,3,4,5,8,10,11,18,19,20,2
    1,28,29} run with RLIM_INFINITY
    Problem Text 1. I got failures for vsu5.3.19 test
    /tset/CAPI.os/procenv/setrlimit/T.setrlimit{1,2,3,4,5,8,10,11,12,13,14,1
    8,19,20,21,28,29}in our test env. Just pasted the log of the first
    variation is as below,
    ================================================
    10|279 /tset/CAPI.os/procenv/setrlimit/T.setrlimit 08:19:24|TC Start,
    scenario ref 281-0
    15|279 3.8-lite 34|TCM Start
    400|279 1 1 08:19:24|IC Start
    200|279 1 08:19:24|TP Start
    520|279 1 00033621066 1 1|PREP: Obtain the limits for RLIMIT_CORE
    520|279 1 00033621066 1 2|TEST: A call to setrlimit(RLIMIT_CORE, rlp)
    allows
    520|279 1 00033621066 1 3| soft limit to be set to a value less
    than the hard limit
    520|279 1 00033621066 1 4|TEST: A call to setrlimit(RLIMIT_CORE, rlp)
    allows
    520|279 1 00033621066 1 5| soft limit to be set to a value equal to
    the hard limit
    520|279 1 00033621066 1 6|PREP: Obtain the limits for RLIMIT_CPU
    520|279 1 00033621066 1 7|ERROR: The test must be run with the soft
    limit for RLIMIT_CPU not equal to RLIM_INFINITY
    520|279 1 00033621066 1 8|PREP: Obtain the limits for RLIMIT_DATA
    520|279 1 00033621066 1 9|ERROR: The test must be run with the soft
    limit for RLIMIT_DATA not equal to RLIM_INFINITY
    520|279 1 00033621066 1 10|PREP: Obtain the limits for RLIMIT_FSIZE
    520|279 1 00033621066 1 11|ERROR: The test must be run with the soft
    limit for RLIMIT_FSIZE not equal to RLIM_INFINITY
    520|279 1 00033621066 1 12|PREP: Obtain the limits for RLIMIT_NOFILE
    520|279 1 00033621066 1 13|TEST: A call to setrlimit(RLIMIT_NOFILE, rlp)
    allows
    520|279 1 00033621066 1 14| soft limit to be set to a value less
    than the hard limit
    520|279 1 00033621066 1 15|TEST: A call to setrlimit(RLIMIT_NOFILE, rlp)
    allows
    520|279 1 00033621066 1 16| soft limit to be set to a value equal
    to the hard limit
    520|279 1 00033621066 1 17|PREP: Obtain the limits for RLIMIT_STACK
    520|279 1 00033621066 1 18|ERROR: The test must be run with the soft
    limit for RLIMIT_STACK not equal to RLIM_INFINITY
    520|279 1 00033621066 1 19|PREP: Obtain the limits for RLIMIT_AS
    520|279 1 00033621066 1 20|TEST: A call to setrlimit(RLIMIT_AS, rlp)
    allows
    520|279 1 00033621066 1 21| soft limit to be set to a value less
    than the hard limit
    520|279 1 00033621066 1 22|TEST: A call to setrlimit(RLIMIT_AS, rlp)
    allows
    520|279 1 00033621066 1 23| soft limit to be set to a value equal
    to the hard limit
    220|279 1 2 08:19:24|UNRESOLVED
    410|279 1 1 08:19:24|IC End
    =======================================

    2. The test suite expects a non-infinite initial limit. I wrote a test
    case to try to use setrlimit to set a non-infinite initial limit, then
    executes tcc by calling execvp(). See the test case below
    ==========================================
    /*
    ** System include files.
    */
    #define _XOPEN_SOURCE 500
    #include <stdlib.h>
    #include <sys/resource.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <signal.h>
    #include <setjmp.h>
    #include <sys/wait.h>

    /*
    ** declarations.
    */

    struct res {
    char name[15];
    int resource;
    };

    struct res vsu_res_list[] = {
    { "RLIMIT_CORE", RLIMIT_CORE },
    { "RLIMIT_CPU", RLIMIT_CPU },
    { "RLIMIT_DATA", RLIMIT_DATA },
    { "RLIMIT_FSIZE", RLIMIT_FSIZE },
    { "RLIMIT_NOFILE", RLIMIT_NOFILE },
    { "RLIMIT_STACK", RLIMIT_STACK },
    { "RLIMIT_AS", RLIMIT_AS },
    { "", 0 }
    };

    /*
    ** Function: int vsu_get_limit_name(int resource, struct res *rs)
    **
    ** Description:
    **
    ** This function searches the resource list for the
    ** resource type "resource". Once a match is found it
    ** copies the other data into "rs" and returns an integer
    ** to indicate success or failure.
    **
    ** Inputs:
    ** int resource -> Resource type
    ** struct res *rs -> Resource being returned
    **
    ** Returns:
    ** int -> 0 - Success
    ** 1 - Failure
    **
    */

    int
    vsu_get_limit_name(int resource, struct res *rs)
    {
    struct res *ptr;

    ptr = &vsu_res_list[0];
    while (strlen(ptr->name) != (size_t)0)
    {
    if (ptr->resource == resource)
    {
    strcpy(rs->name, ptr->name);
    rs->resource = resource;
    return (0);
    }
    ptr++;
    }
    return (1);
    }

    static int
    check_setrlimit(int resource)
    {
    struct rlimit setrlp;
    struct rlimit save;
    rlim_t soft;
    struct res rs;


    if (vsu_get_limit_name(resource, &rs))
    return (-1);

    printf("PREP: Obtain the limits for %s
    ", rs.name);
    if (getrlimit(resource, &save) != 0)
    {
    printf("error to getrlimit
    ");
    return (-1);
    }

    if (save.rlim_cur == RLIM_INFINITY)
    {
    printf("INFO: Limits for %s are not enforced on this
    system
    ", rs.name);
    }

    printf("Now try to use setrlimit to make the test run with soft
    limit not eaqual to RLIM_INFINITY
    ");
    /* in our system, RLIM_INFINITY is 2147483647L */

    /* save.rlim_cur = 2000000000; */
    save.rlim_cur = 2000000000;
    save.rlim_max = RLIM_INFINITY;


    setrlp.rlim_cur = save.rlim_cur;
    setrlp.rlim_max = setrlp.rlim_cur +1;



    if (setrlimit(resource, &setrlp) == -1)
    {
    printf("setrlimit failed to a value less than
    RLIM_INFINITY
    ");
    return (-1);
    }
    else
    printf("setrlimit success
    ");

    if (getrlimit(resource, &save) != 0)
    {
    printf("getrlimit failed after setrlimit
    ");
    return (-1);
    }
    else
    printf("getrlimit success after setrlimit
    ");

    if (setrlp.rlim_cur != save.rlim_cur)
    {
    printf("setrlimit() did not set the correct soft
    limit
    ");
    return (-1);
    }
    else
    printf("setrlimit() set the correct soft limit
    ");

    return (0);
    }

    int main()
    {
    char* command = "tcc";
    char* argument_list[] = {"tcc", "-e", "-l",
    "/tset/CAPI.os/procenv/setrlimit/T.setrlimit{1,2,3,4,5,8,10,11,12,13,14,
    18,19,20,21,28,29}","vsu", NULL};
    /* tcc -e -l /tset/CAPI.os/procenv/setrlimit/T.setrlimit{1} vsu
    */

    if (check_setrlimit(RLIMIT_CPU))
    printf("ERROR: check RLIMIT_CPU
    ");
    else
    printf("In main, check setrlimit RLIMIT_CPU
    OK
    ");

    if (check_setrlimit(RLIMIT_DATA))
    printf("ERROR: check RLIMIT_DATA
    ");
    else
    printf("In main, check setrlimit RLIMIT_DATA
    OK
    ");

    if (check_setrlimit(RLIMIT_FSIZE))
    printf("ERROR: check RLIMIT_FSIZE
    ");
    else
    printf("In main, check setrlimit RLIMIT_FSIZE
    OK
    ");

    if (check_setrlimit(RLIMIT_STACK))
    printf("ERROR: check RLIMIT_STACK
    ");
    else
    printf("In main, check setrlimit RLIMIT_STACK
    OK
    ");

    printf("Before calling execvp()
    ");

    /* Calling the execvp() system call */
    int status_code = execvp(command, argument_list);

    return (0);
    }


    ==============================================



    , then I got the result as below,
    =============================================
    PREP: Obtain the limits for RLIMIT_CPU
    INFO: Limits for RLIMIT_CPU are not enforced on this system;
    Now try to use setrlimit to make the test run with soft limit not eaqual
    to RLIM_INFINITY
    setrlimit success
    getrlimit success after setrlimit
    setrlimit() set the correct soft limit
    In main, check setrlimit RLIMIT_CPU OK
    PREP: Obtain the limits for RLIMIT_DATA
    INFO: Limits for RLIMIT_DATA are not enforced on this system
    Now try to use setrlimit to make the test run with soft limit not eaqual
    to RLIM_INFINITY
    setrlimit failed to a value less than RLIM_INFINITY
    ERROR: check RLIMIT_DATA
    PREP: Obtain the limits for RLIMIT_FSIZE
    INFO: Limits for RLIMIT_FSIZE are not enforced on this system
    Now try to use setrlimit to make the test run with soft limit not eaqual
    to RLIM_INFINITY
    setrlimit success
    getrlimit success after setrlimit
    setrlimit() set the correct soft limit
    In main, check setrlimit RLIMIT_FSIZE OK
    PREP: Obtain the limits for RLIMIT_STACK
    INFO: Limits for RLIMIT_STACK are not enforced on this system
    Now try to use setrlimit to make the test run with soft limit not eaqual
    to RLIM_INFINITY
    setrlimit failed to a value less than RLIM_INFINITY
    ERROR: check RLIMIT_STACK
    Before calling execvp()
    tcc: journal file is /vsu5319/usr/TET/vsu/results/0029e/journal
    ============================
    See the journal file in Test Output Field.

    From the result, we can see that, in our system, we can change the soft
    limit to a lower value using setrlimit() for RLIMIT_CORE, RLIMIT_CPU,
    RLIMIT_FSIZE, RLIMIT_NOFILE, RLIMIT_AS. But failed for RLIMIT_DATA,
    RLIMIT_STACK. And from the statement in page 269 of C435, "Soft limits
    may be changed by a process to any value that is less than or equal to
    the hard limit." It only indicates that Limits [may] be changed, seems
    not a statement that "soft limit must be supported to be changed to a
    lower value less than hard limit". May I apply a PIN to cover these
    failures? Thanks so much for your help!

    Test Output 10|0 /tset/CAPI.os/procenv/setrlimit/T.setrlimit 02:54:53|TC Start,
    scenario ref 1-0, ICs: {1,2,3,4,5,8,10,11,12,13,14,18,19,20,21,28,29}
    15|0 3.8-lite 17|TCM Start
    400|0 1 1 02:54:53|IC Start
    200|0 1 02:54:53|TP Start
    520|0 1 00016843279 1 1|PREP: Obtain the limits for RLIMIT_CORE
    520|0 1 00016843279 1 2|TEST: A call to setrlimit(RLIMIT_CORE, rlp)
    allows
    520|0 1 00016843279 1 3| soft limit to be set to a value less than
    the hard limit
    520|0 1 00016843279 1 4|TEST: A call to setrlimit(RLIMIT_CORE, rlp)
    allows
    520|0 1 00016843279 1 5| soft limit to be set to a value equal to
    the hard limit
    520|0 1 00016843279 1 6|PREP: Obtain the limits for RLIMIT_CPU
    520|0 1 00016843279 1 7|TEST: A call to setrlimit(RLIMIT_CPU, rlp)
    allows
    520|0 1 00016843279 1 8| soft limit to be set to a value less than
    the hard limit
    520|0 1 00016843279 1 9|TEST: A call to setrlimit(RLIMIT_CPU, rlp)
    allows
    520|0 1 00016843279 1 10| soft limit to be set to a value equal to
    the hard limit
    520|0 1 00016843279 1 11|PREP: Obtain the limits for RLIMIT_DATA
    520|0 1 00016843279 1 12|ERROR: The test must be run with the soft limit
    for RLIMIT_DATA not equal to RLIM_INFINITY
    520|0 1 00016843279 1 13|PREP: Obtain the limits for RLIMIT_FSIZE
    520|0 1 00016843279 1 14|TEST: A call to setrlimit(RLIMIT_FSIZE, rlp)
    allows
    520|0 1 00016843279 1 15| soft limit to be set to a value less than
    the hard limit
    520|0 1 00016843279 1 16|TEST: A call to setrlimit(RLIMIT_FSIZE, rlp)
    allows
    520|0 1 00016843279 1 17| soft limit to be set to a value equal to
    the hard limit
    520|0 1 00016843279 1 18|PREP: Obtain the limits for RLIMIT_NOFILE
    520|0 1 00016843279 1 19|TEST: A call to setrlimit(RLIMIT_NOFILE, rlp)
    allows
    520|0 1 00016843279 1 20| soft limit to be set to a value less than
    the hard limit
    520|0 1 00016843279 1 21|TEST: A call to setrlimit(RLIMIT_NOFILE, rlp)
    allows
    520|0 1 00016843279 1 22| soft limit to be set to a value equal to
    the hard limit
    520|0 1 00016843279 1 23|PREP: Obtain the limits for RLIMIT_STACK
    520|0 1 00016843279 1 24|ERROR: The test must be run with the soft limit
    for RLIMIT_STACK not equal to RLIM_INFINITY
    520|0 1 00016843279 1 25|PREP: Obtain the limits for RLIMIT_AS
    520|0 1 00016843279 1 26|TEST: A call to setrlimit(RLIMIT_AS, rlp)
    allows
    520|0 1 00016843279 1 27| soft limit to be set to a value less than
    the hard limit
    520|0 1 00016843279 1 28|TEST: A call to setrlimit(RLIMIT_AS, rlp)
    allows
    520|0 1 00016843279 1 29| soft limit to be set to a value equal to
    the hard limit
    220|0 1 2 02:54:53|UNRESOLVED
    410|0 1 1 02:54:53|IC End
    400|0 2 1 02:54:53|IC Start
    200|0 2 02:54:53|TP Start
    520|0 2 00033620495 1 1|PREP: Obtain the limits for RLIMIT_CORE
    520|0 2 00033620495 1 2|TEST: A call to setrlimit(RLIMIT_CORE, rlp)
    allows
    520|0 2 00033620495 1 3| allows the hard limit to be set to a value
    greater than the soft limit
    520|0 2 00033620495 1 4|TEST: A call to setrlimit(RLIMIT_CORE, rlp)
    allows
    520|0 2 00033620495 1 5| allows the hard limit to be set to the
    value of the soft limit
    520|0 2 00033620495 1 6|PREP: Obtain the limits for RLIMIT_CPU
    520|0 2 00033620495 1 7|TEST: A call to setrlimit(RLIMIT_CPU, rlp)
    allows
    520|0 2 00033620495 1 8| allows the hard limit to be set to a value
    greater than the soft limit
    520|0 2 00033620495 1 9|TEST: A call to setrlimit(RLIMIT_CPU, rlp)
    allows
    520|0 2 00033620495 1 10| allows the hard limit to be set to the
    value of the soft limit
    520|0 2 00033620495 1 11|PREP: Obtain the limits for RLIMIT_DATA
    520|0 2 00033620495 1 12|ERROR: The test must be run with the soft limit
    for RLIMIT_DATA not equal to RLIM_INFINITY
    520|0 2 00033620495 1 13|PREP: Obtain the limits for RLIMIT_FSIZE
    520|0 2 00033620495 1 14|TEST: A call to setrlimit(RLIMIT_FSIZE, rlp)
    allows
    520|0 2 00033620495 1 15| allows the hard limit to be set to a
    value greater than the soft limit
    520|0 2 00033620495 1 16|TEST: A call to setrlimit(RLIMIT_FSIZE, rlp)
    allows
    520|0 2 00033620495 1 17| allows the hard limit to be set to the
    value of the soft limit
    520|0 2 00033620495 1 18|PREP: Obtain the limits for RLIMIT_NOFILE
    520|0 2 00033620495 1 19|TEST: A call to setrlimit(RLIMIT_NOFILE, rlp)
    allows
    520|0 2 00033620495 1 20| allows the hard limit to be set to a
    value greater than the soft limit
    520|0 2 00033620495 1 21|TEST: A call to setrlimit(RLIMIT_NOFILE, rlp)
    allows
    520|0 2 00033620495 1 22| allows the hard limit to be set to the
    value of the soft limit
    520|0 2 00033620495 1 23|PREP: Obtain the limits for RLIMIT_STACK
    520|0 2 00033620495 1 24|ERROR: The test must be run with the soft limit
    for RLIMIT_STACK not equal to RLIM_INFINITY
    520|0 2 00033620495 1 25|PREP: Obtain the limits for RLIMIT_AS
    520|0 2 00033620495 1 26|TEST: A call to setrlimit(RLIMIT_AS, rlp)
    allows
    520|0 2 00033620495 1 27| allows the hard limit to be set to a
    value greater than the soft limit
    520|0 2 00033620495 1 28|TEST: A call to setrlimit(RLIMIT_AS, rlp)
    allows
    520|0 2 00033620495 1 29| allows the hard limit to be set to the
    value of the soft limit
    220|0 2 2 02:54:53|UNRESOLVED
    410|0 2 1 02:54:53|IC End
    400|0 3 1 02:54:53|IC Start
    200|0 3 02:54:53|TP Start
    520|0 3 00065997 1 1|PREP: Read value for VSX_UID1 configuration
    520|0 3 00065997 1 2| parameter
    520|0 3 00065997 1 3|PREP: Obtain the limits for RLIMIT_CORE
    520|0 3 00065997 1 4|TEST: A call to setrlimit(RLIMIT_CORE, rlp) allows
    520|0 3 00065997 1 5| a process with superuser privileges to raise
    520|0 3 00065997 1 6| its hard limit
    520|0 3 00065997 2 1|PREP: Obtain the limits for RLIMIT_CPU
    520|0 3 00065997 2 2|TEST: A call to setrlimit(RLIMIT_CPU, rlp) allows
    520|0 3 00065997 2 3| a process with superuser privileges to raise
    520|0 3 00065997 2 4| its hard limit
    520|0 3 00065997 3 1|PREP: Obtain the limits for RLIMIT_DATA
    520|0 3 00065997 3 2|ERROR: The test must be run with the soft limit for
    RLIMIT_DATA not equal to RLIM_INFINITY
    520|0 3 00065997 3 3|PREP: Obtain the limits for RLIMIT_FSIZE
    520|0 3 00065997 3 4|TEST: A call to setrlimit(RLIMIT_FSIZE, rlp) allows
    520|0 3 00065997 3 5| a process with superuser privileges to raise
    520|0 3 00065997 3 6| its hard limit
    520|0 3 00065997 4 1|PREP: Obtain the limits for RLIMIT_NOFILE
    520|0 3 00065997 4 2|INFO: limit >= sysconf(_SC_OPEN_MAX) so cannot be
    raised
    520|0 3 00065997 4 3|PREP: Obtain the limits for RLIMIT_STACK
    520|0 3 00065997 4 4|ERROR: The test must be run with the soft limit for
    RLIMIT_STACK not equal to RLIM_INFINITY
    220|0 3 2 02:54:53|UNRESOLVED
    410|0 3 1 02:54:53|IC End
    400|0 4 1 02:54:53|IC Start
    200|0 4 02:54:53|TP Start
    520|0 4 00016843213 1 1|PREP: Obtain the limits for RLIMIT_CORE
    520|0 4 00016843213 1 2|TEST: Call to setrlimit(RLIMIT_CORE, rlp) allows
    520|0 4 00016843213 1 3| a process to change its soft and hard
    limits
    520|0 4 00016843213 1 4| in the same call
    520|0 4 00016843213 1 5|PREP: Obtain the limits for RLIMIT_CPU
    520|0 4 00016843213 1 6|TEST: Call to setrlimit(RLIMIT_CPU, rlp) allows
    520|0 4 00016843213 1 7| a process to change its soft and hard
    limits
    520|0 4 00016843213 1 8| in the same call
    520|0 4 00016843213 1 9|PREP: Obtain the limits for RLIMIT_DATA
    520|0 4 00016843213 1 10|ERROR: The test must be run with the soft limit
    for RLIMIT_DATA not equal to RLIM_INFINITY
    520|0 4 00016843213 1 11|PREP: Obtain the limits for RLIMIT_FSIZE
    520|0 4 00016843213 1 12|TEST: Call to setrlimit(RLIMIT_FSIZE, rlp)
    allows
    520|0 4 00016843213 1 13| a process to change its soft and hard
    limits
    520|0 4 00016843213 1 14| in the same call
    520|0 4 00016843213 1 15|PREP: Obtain the limits for RLIMIT_NOFILE
    520|0 4 00016843213 1 16|TEST: Call to setrlimit(RLIMIT_NOFILE, rlp)
    allows
    520|0 4 00016843213 1 17| a process to change its soft and hard
    limits
    520|0 4 00016843213 1 18| in the same call
    520|0 4 00016843213 1 19|PREP: Obtain the limits for RLIMIT_STACK
    520|0 4 00016843213 1 20|ERROR: The test must be run with the soft limit
    for RLIMIT_STACK not equal to RLIM_INFINITY
    520|0 4 00016843213 1 21|PREP: Obtain the limits for RLIMIT_AS
    520|0 4 00016843213 1 22|TEST: Call to setrlimit(RLIMIT_AS, rlp) allows
    520|0 4 00016843213 1 23| a process to change its soft and hard
    limits
    520|0 4 00016843213 1 24| in the same call
    220|0 4 2 02:54:53|UNRESOLVED
    410|0 4 1 02:54:53|IC End
    400|0 5 1 02:54:53|IC Start
    200|0 5 02:54:53|TP Start
    520|0 5 00033620429 1 1|PREP: Obtain the limits for RLIMIT_CORE
    520|0 5 00033620429 1 2|TEST: Call to setrlimit(RLIMIT_CORE, rlp) when
    520|0 5 00033620429 1 3| RLIM_INFINITY is specified as the limit
    value
    520|0 5 00033620429 1 4| shall inhibit enforcement of that resource
    520|0 5 00033620429 1 5|PREP: Obtain the limits for RLIMIT_CPU
    520|0 5 00033620429 1 6|TEST: Call to setrlimit(RLIMIT_CPU, rlp) when
    520|0 5 00033620429 1 7| RLIM_INFINITY is specified as the limit
    value
    520|0 5 00033620429 1 8| shall inhibit enforcement of that resource
    520|0 5 00033620429 1 9|PREP: Obtain the limits for RLIMIT_DATA
    520|0 5 00033620429 1 10|ERROR: The test must be run with the soft limit
    for RLIMIT_DATA not equal to RLIM_INFINITY
    520|0 5 00033620429 1 11|PREP: Obtain the limits for RLIMIT_FSIZE
    520|0 5 00033620429 1 12|TEST: Call to setrlimit(RLIMIT_FSIZE, rlp) when
    520|0 5 00033620429 1 13| RLIM_INFINITY is specified as the limit
    value
    520|0 5 00033620429 1 14| shall inhibit enforcement of that
    resource
    520|0 5 00033620429 1 15|PREP: Obtain the limits for RLIMIT_NOFILE
    520|0 5 00033620429 1 16|TEST: Call to setrlimit(RLIMIT_NOFILE, rlp)
    when
    520|0 5 00033620429 1 17| RLIM_INFINITY is specified as the limit
    value
    520|0 5 00033620429 1 18| shall inhibit enforcement of that
    resource
    520|0 5 00033620429 1 19|PREP: Obtain the limits for RLIMIT_STACK
    520|0 5 00033620429 1 20|ERROR: The test must be run with the soft limit
    for RLIMIT_STACK not equal to RLIM_INFINITY
    520|0 5 00033620429 1 21|PREP: Obtain the limits for RLIMIT_AS
    520|0 5 00033620429 1 22|TEST: Call to setrlimit(RLIMIT_AS, rlp) when
    520|0 5 00033620429 1 23| RLIM_INFINITY is specified as the limit
    value
    520|0 5 00033620429 1 24| shall inhibit enforcement of that
    resource
    220|0 5 2 02:54:53|UNRESOLVED
    410|0 5 1 02:54:53|IC End
    400|0 8 1 02:54:53|IC Start
    200|0 8 02:54:53|TP Start
    520|0 8 00050397876 1 1|PREP: Get the current limits
    520|0 8 00050397876 1 2|TEST: Call to setrlimit(RLIMIT_CPU, rlp) shall
    set
    520|0 8 00050397876 1 3| the soft and hard limits for the maximum
    amount
    520|0 8 00050397876 1 4| of CPU time used by the process
    220|0 8 0 02:54:53|PASS
    410|0 8 1 02:54:53|IC End
    400|0 10 1 02:54:53|IC Start
    200|0 10 02:54:53|TP Start
    520|0 10 00067175092 1 1|PREP: get current limits
    520|0 10 00067175092 1 2|ERROR: The test must be run with the soft limit
    for RLIMIT_DATA not equal to RLIM_INFINITY
    220|0 10 2 02:54:53|UNRESOLVED
    410|0 10 1 02:54:53|IC End
    400|0 11 1 02:54:53|IC Start
    200|0 11 02:54:53|TP Start
    520|0 11 00083952308 1 1|PREP: Get current limits
    520|0 11 00083952308 1 2|ERROR: The test must be run with the soft limit
    for RLIMIT_DATA not equal to RLIM_INFINITY
    220|0 11 2 02:54:53|UNRESOLVED
    410|0 11 1 02:54:53|IC End
    400|0 18 1 02:54:53|IC Start
    200|0 18 02:54:53|TP Start
    520|0 18 00067174716 1 1|PREP: Save the current stack limits
    520|0 18 00067174716 1 2|PREP: Get the current limits
    520|0 18 00067174716 1 3|ERROR: The test must be run with the soft limit
    for RLIMIT_STACK not equal to RLIM_INFINITY
    220|0 18 2 02:54:53|UNRESOLVED
    410|0 18 1 02:54:53|IC End
    400|0 19 1 02:54:53|IC Start
    200|0 19 02:54:53|TP Start
    520|0 19 00050397757 1 1|PREP: Save the current stack limits
    520|0 19 00050397757 1 2|ERROR: The test must be run with the soft limit
    for RLIMIT_STACK not equal to RLIM_INFINITY
    220|0 19 2 02:54:53|UNRESOLVED
    410|0 19 1 02:54:53|IC End
    400|0 20 1 02:54:53|IC Start
    200|0 20 02:54:53|TP Start
    520|0 20 00066731 1 1|PREP: Save the current stack limits
    520|0 20 00066731 1 2|ERROR: The test must be run with the soft limit
    for RLIMIT_STACK not equal to RLIM_INFINITY
    220|0 20 2 02:54:53|UNRESOLVED
    410|0 20 1 02:54:53|IC End
    400|0 21 1 02:54:53|IC Start
    200|0 21 02:54:53|TP Start
    520|0 21 00066254 1 1|PREP: Obtain the current stack limits
    520|0 21 00066254 1 2|ERROR: The test must be run with the soft limit
    for RLIMIT_STACK not equal to RLIM_INFINITY
    220|0 21 2 02:54:53|UNRESOLVED
    410|0 21 1 02:54:53|IC End
    400|0 28 1 02:54:53|IC Start
    200|0 28 02:54:53|TP Start
    520|0 28 00016843470 1 1|PREP: Obtain the limits for RLIMIT_CORE
    520|0 28 00016843470 1 2|TEST: setrlimit() with RLIMIT_CORE returns -1
    when
    520|0 28 00016843470 1 3| soft limit exceeds the hard limit
    520|0 28 00016843470 1 4|TEST: errno set to EINVAL
    520|0 28 00016843470 1 5|PREP: Obtain the limits for RLIMIT_CPU
    520|0 28 00016843470 1 6|TEST: setrlimit() with RLIMIT_CPU returns -1
    when
    520|0 28 00016843470 1 7| soft limit exceeds the hard limit
    520|0 28 00016843470 1 8|TEST: errno set to EINVAL
    520|0 28 00016843470 1 9|PREP: Obtain the limits for RLIMIT_DATA
    520|0 28 00016843470 1 10|ERROR: The test must be run with the soft
    limit for RLIMIT_DATA not equal to RLIM_INFINITY
    520|0 28 00016843470 1 11|PREP: Obtain the limits for RLIMIT_FSIZE
    520|0 28 00016843470 1 12|TEST: setrlimit() with RLIMIT_FSIZE returns -1
    when
    520|0 28 00016843470 1 13| soft limit exceeds the hard limit
    520|0 28 00016843470 1 14|TEST: errno set to EINVAL
    520|0 28 00016843470 1 15|PREP: Obtain the limits for RLIMIT_NOFILE
    520|0 28 00016843470 1 16|TEST: setrlimit() with RLIMIT_NOFILE returns
    -1 when
    520|0 28 00016843470 1 17| soft limit exceeds the hard limit
    520|0 28 00016843470 1 18|TEST: errno set to EINVAL
    520|0 28 00016843470 1 19|PREP: Obtain the limits for RLIMIT_STACK
    520|0 28 00016843470 1 20|ERROR: The test must be run with the soft
    limit for RLIMIT_STACK not equal to RLIM_INFINITY
    520|0 28 00016843470 1 21|PREP: Obtain the limits for RLIMIT_AS
    520|0 28 00016843470 1 22|TEST: setrlimit() with RLIMIT_AS returns -1
    when
    520|0 28 00016843470 1 23| soft limit exceeds the hard limit
    520|0 28 00016843470 1 24|TEST: errno set to EINVAL
    220|0 28 2 02:54:53|UNRESOLVED
    410|0 28 1 02:54:53|IC End
    400|0 29 1 02:54:53|IC Start
    200|0 29 02:54:53|TP Start
    520|0 29 00033620686 1 1|PREP: Obtain the limits for RLIMIT_CORE
    520|0 29 00033620686 1 2|TEST: setrlimit() with RLIMIT_CORE returns -1
    with EPERM when attempting to raise the
    520|0 29 00033620686 1 3| hard limit without appropriate privileges
    520|0 29 00033620686 1 4|PREP: Obtain the limits for RLIMIT_CPU
    520|0 29 00033620686 1 5|TEST: setrlimit() with RLIMIT_CPU returns -1
    with EPERM when attempting to raise the
    520|0 29 00033620686 1 6| hard limit without appropriate privileges
    520|0 29 00033620686 1 7|PREP: Obtain the limits for RLIMIT_DATA
    520|0 29 00033620686 1 8|ERROR: The test must be run with the soft limit
    for RLIMIT_DATA not equal to RLIM_INFINITY
    520|0 29 00033620686 1 9|PREP: Obtain the limits for RLIMIT_FSIZE
    520|0 29 00033620686 1 10|TEST: setrlimit() with RLIMIT_FSIZE returns -1
    with EPERM when attempting to raise the
    520|0 29 00033620686 1 11| hard limit without appropriate
    privileges
    520|0 29 00033620686 1 12|PREP: Obtain the limits for RLIMIT_NOFILE
    520|0 29 00033620686 1 13|TEST: setrlimit() with RLIMIT_NOFILE returns
    -1 with EPERM when attempting to raise the
    520|0 29 00033620686 1 14| hard limit without appropriate
    privileges
    520|0 29 00033620686 1 15|PREP: Obtain the limits for RLIMIT_STACK
    520|0 29 00033620686 1 16|ERROR: The test must be run with the soft
    limit for RLIMIT_STACK not equal to RLIM_INFINITY
    520|0 29 00033620686 1 17|PREP: Obtain the limits for RLIMIT_AS
    520|0 29 00033620686 1 18|TEST: setrlimit() with RLIMIT_AS returns -1
    with EPERM when attempting to raise the
    520|0 29 00033620686 1 19| hard limit without appropriate
    privileges
    220|0 29 2 02:54:53|UNRESOLVED
    410|0 29 1 02:54:53|IC End
    80|0 0 02:54:54|TC End, scenario ref 1-0

    Review Information

    Review Type SA Review
    Start Date 2020-10-26 18:06
    Last Updated 2020-10-26 12:09
    Completed 2020-10-26 12:09
    Status Complete
    Review Resolution Permanent Interpretation (PIN)
    Review Conclusion The use of "may" in the quoted C435 (XSH4.2) text makes the standard
    unclear, since "may" is defined in 1.5 Terminology as indicating that a
    feature or behavior is optional for implementations.

    Later in the same paragraph, "can" is used instead, which matches the
    intention that the text is describing what a process can do. However,
    until the preceding use of "may" is changed to "can" in a future
    revision, this is accepted as a grey area in the standard and a
    PIN is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority