question

Upvotes
Accepted
23 0 0 3

rsslInitDefaultRDMLoginRequest fails with solarflaire onload

If I run under onload the rsslInitDefaultRDMLoginRequest(&loginRequest, 1)) fails

Error return is -1, RSSL_RET_FAILURE

The login init fails but login succeeds. So nothing critical at this point.

Can someone point me in right direction how to debug this.

elektronrefinitiv-realtimeelektron-sdkrrteta-apielektron-transport-apilog-in
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
Accepted
29k 33 11 15

Hello @nrai,

I'd like to note, that ETA libraries are not tested on SolarFlaire as part of the release process, and therefore, are not certified for it.

I would also like to note, that the complete source code and build process for Elektron SDK->ETA is available, via Elektron SDK donwload on github.

Are you building your ESDK from code?

Personally, if I was serious about running ESDK on SolarFlair in a production setting, I would pull code, and make modifications into rsslRMDLoginMsg.h ->rsslInitDefaultRDMLoginRequest method, to output some additional info as to the nature of the failure.

Then, depending on what have caused the failure, I would decide if I would be ok with the failure, or it would not be acceptable to me.

I am assuming, that running from within debugger, and break-pointing is not assessable in this setup, otherwise, that would also be a good way to find out what is causing failure.

I hope this helps, in an event of a unobvious failure, two old-fashioned, tried and true approaches remain, debugger+breakpoint or output-till-you-pinpoint :)

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
23 0 0 3
   /* After this consumer successfully connects into a server (TREP), we must log in.
    * Initialize a default login request (Use 1 as the Login Stream ID). */
    if ((ret = rsslInitDefaultRDMLoginRequest(&loginRequest, 1)) != RSSL_RET_SUCCESS)
    {
        LOG_ERROR("rsslInitDefaultRDMLoginRequest() failed. ret=" << ret << " " << rsslRetCodeToString(ret));
        //cleanUpAndExit(-1);
    }

The above code is taken from sample. It has been working well for few months.

Recently we tried to use it with solarflaire onload. So we start our exe using onload.

old way : rmds <args>

new way: onload rmds <args>

The new way throws an error at the rsslInitDefaultRDMLoginRequest

Our trep admin doesn''t see any problem, so I am guessing, init failure is innocent.

The sample code exits on such error. We commented out the exit and can work around it.

I am just curious why it returns -1 and if we can do something to avoid it.



icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
23 0 0 3

thanks. We will try to build that and start a new thread if need any help.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
23 0 0 3

I greped for the function rsslInitDefaultRDMLoginRequest in src code

Elektron-SDK/Cpp-C/Eta/Include/RDM/rtr/rsslRDMLoginMsg.h

It returns RSSL_RET_FAILURE only in one condition.

 If rsslGetUserName(&pRequest->userName) != RSSL_RET_SUCCESS


Elektron-SDK/Cpp-C/Eta/Impl/Transport/rsslImpl.c

this returns error if

    if(getpwuid_r(getuid(), &pwd, pwd_buffer, sizeof(pwd_buffer), &passwd) != 0)
        return RSSL_RET_FAILURE;
    pTempUserName = passwd->pw_name;
    if (pTempUserName == NULL)
        return RSSL_RET_FAILURE;

so I guess I don't have to build this. I can investigate why those functions return error with solarflaire . And those are linux functions, so I should be able to write a standalone code to test it.

I'll report here what I find


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
23 0 0 3

there two functions work in a sample program with or without onload.
so I think I am back to building the ETA from source.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.