Tuesday, December 25, 2012

No error message

I have posted regularly about poor error messages from software. In general I find that the importance of formulating meaningful  error messages is underestimated by developers, leading to some level of frustration by users. Of course, issuing no error message at all is even easier for a developer (and even more difficult for users to deal with).

               S O L V E      S U M M A R Y

     MODEL   LANDfeas            OBJECTIVE  totallow
     TYPE    LP                  DIRECTION  MINIMIZE
     SOLVER  MOSEK               FROM LINE  165233

**** SOLVER STATUS     4 Terminated By Solver     
**** MODEL STATUS      14 No Solution Returned    
**** OBJECTIVE VALUE                0.0000

RESOURCE USAGE, LIMIT         20.311    900000.000
ITERATION COUNT, LIMIT         0        900000

    Copyright (C)   MOSEK ApS, Fruebjergvej 3, Box 16
                    DK-2100 Copenhagen, Denmark
                   
http://www.mosek.com
GAMS/MOSEK Extended license detected

No solution returned

I received a listing file with this fragment. I have no idea how I can help the user as I have no idea what went wrong. Now I need to get the model and data files and see if I can reproduce the problem. We see some strange trade-offs at work here: the developers saved some time by not providing code to print a readable message, and as a result (multiple) users have to spent extra time and effort in supporting and maintaining an application.

5 comments:

  1. Most likely the lack of appropriate output is caused by a bug in this case. Sorry, but that is what happens.

    I build the initial version of the interface that GAMS now maintains. I for sure tried to output suitable messages but shall not claim things are bug free.

    Therefore, I strongly suggest you contact GAMS support with your observation and I am sure they will fix issue togther with us a MOSEK.

    Merry Christmas and Happy New Year.

    ReplyDelete
  2. Probably an out of memory situation. On the Mosek screen log we could see:

    Solution summary
    Interior-point solution
    Problem status : UNKNOWN
    Solution status : UNKNOWN
    Primal - objective: 0.0000000000e+000 eq. inf.: 0.00e+000 max bound inf.: 2.00e+004 cone inf.: 0.00e+000
    Dual - objective: 0.0000000000e+000 eq. inf.: 1.00e+004 max bound inf.: 0.00e+000 cone inf.: 0.00e+000

    Basic solution
    Problem status : UNKNOWN
    Solution status : UNKNOWN
    Primal - objective: 0.0000000000e+000 eq. inf.: 0.00e+000 max bound inf.: 2.00e+004
    Dual - objective: 0.0000000000e+000 eq. inf.: 1.00e+004 max bound inf.: 0.00e+000


    Return code - 1051 [MSK_RES_ERR_SPACE]


    No documentation was found for this message, but I guess this means out of memory.

    ReplyDelete
  3. If you Google MSK_RES_ERR_SPACE then the fourth link is

    http://docs.mosek.com/6.0/capi/node019.html

    and it will tell you that is equivalent to out of space. Hence, MOSEK could not allocate the storage required. This also shows that
    the error code is described in the official MOSEK manual.

    I am not sure why the GAMS interface does report the appropriately.
    That must be a bug. The out of space situation is not always the most tested one.

    If your is small then of course MOSEK should not run out of space.
    Then that might also indicate a bug.

    We would very much like to fix the issue. I will discuss it GAMS support after New Year.

    ReplyDelete
  4. I have talked to GAMS support. They say GAMS does not have an error code for out of space, so that is why solver status is not informative. Moreover, they will add an extended error message to the LST file in case of an error. This should happen in the next version of GAMS.

    ReplyDelete