[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Intermittent error: I/O: Unknown system state



Hi John,

>     Attached are some debug logs - one from a http_post that worked, and
>     one that has the error.  I scoured the website for clues to why the
>     failure happened but couldn't find any.

Thanks for the debug logs.  I'm not sure what the cause of this error 
is, but I'll tell you everything I'm able to glean from log, and perhaps 
this will give you some clues about what to try next?

 From looking at the logs, it appears the error is being detected in the 
following section of code within the COMMSSLR4 module of HTTPAPI:

      C* Initialize the SSL environment.  After this, secure sessions
      C*   can be created!
      c                   eval      rc = gsk_environment_init(wkEnvh)
      c                   if        rc <> GSK_OK
      c                   if        rc = GSK_AS400_ERROR_NOT_REGISTERED
      c                   callp     SetError(HTTP_NOTREG: 'Application ' +
      c                             'is not registered with DCM!')
      c                   callp     https_cleanup
      c                   return    -1
      c                   else
      c                   callp     SetError(HTTP_GSKATYP: 'gsk_env_init: '+
      c                                         ssl_error(rc))
      c                   callp     https_cleanup
      c                   return    -1
      c                   endif
      c                   endif

NOTE: That's taken from the current beta.  I don't have a copy of the 
older code handy.  I do know that this routine was changed somewhat, 
though, I think the changes were small bug fixes.

 From the debug log, I can see that the API rc=406 (GSK_ERROR_IO) and 
errno=3474 (also known as MSGID(CPE3474) or EUNKNOWN) which is "Unknown 
System State."  This, in turn, triggers HTTPAPI's error #24 
(HTTP_GSKATYP), which is what would be returned back to your program via 
http_error().

So we know the exact line of code where it's happening.  It's happening 
when I call gsk_environment_init(), which is an IBM-supplied API, and 
it's documented here:

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/gsk_environment_init.htm

If you look at the information center page (the link above) you'll see 
the following listed as an error response for the API:

    [GSK_ERROR_IO]
        An error occurred in SSL processing, check errno value.

So that's what you're getting.  And below that further, it lists a few 
different errno values, but does not list EUNKNOWN (3474).  It does say 
"If an errno is returned that is not in this list, look in Errno Values 
for UNIX-Type Functions for a description of the errno."

so, if I look there, I see this:

EUNKNOWN -- Unknown system state.

    The operation failed because of an unknown system state. See any
    messages in the job log and correct any errors that are indicated,
    then retry the operation.

So now I go back to the job log you sent on Tuesday, and I see this:

*NONE Command 01/19/11 22:01:00.030472 QCLCLCPR QSYS 04A4 PPR200P 
MODHPGM *STMT
To module . . . . . . . . . : PPR200P
To procedure . . . . . . . : PPR200P
Statement . . . . . . . . . : 3900
Message . . . . : 3900 - CALL PGM(PPR200)
CPF9897 Diagnostic 40 01/19/11 22:01:04.092360 HTTPAPIR4 MODHPGM *STMT 
HTTPAPIR4 MODHPGM *STMT

 From module . . . . . . . . : HTTPUTILR4
 From procedure . . . . . . : UTIL_DIAG
Statement . . . . . . . . . : 2992
To module . . . . . . . . . : COMMSSLR4
To procedure . . . . . . . : SSL_ERROR
Statement . . . . . . . . . : 5574
Message . . . . : (GSKit) I/O: Unknown system state.
Cause . . . . . : No additional online help information is available.

There's no messages in between the "CALL PGM" and the "Unknown System 
State"...  so there's no errors in the job log for me to correct.

You'll note that your debug file (as well as your job log) also lists a 
bunch of "(GSkit) Handle not valid" errors.  These I've seen before, and 
are caused by the first error.  The current beta will eliminate these 
errors (but, AFAIK, won't eliminate the "Unknown system state")

>     I'm hoping someone has a tip for what I could check or try next.

Well... if you waded through my long-winded message, above, I hope 
you'll see that HTTPAPI is calling an IBM-supplied API, and the error is 
occurring inside that API.

My next step would be to make sure you have the latest CUME & Group PTFs 
installed.   There was a similar error that IBM fixed in 2007 related to 
SSL in FTP...   No idea if that's the same thing that's happening here, 
but they are both using the same SSL engine, so it could be...
http://www-01.ibm.com/support/docview.wss?uid=nas21f5728dac1be65a986257331003c69c5

-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------