Skip to content
This repository was archived by the owner on Feb 11, 2020. It is now read-only.
This repository was archived by the owner on Feb 11, 2020. It is now read-only.

NMPRK_GetStatistics() often returns NMPRK_INVALID_RSP_LENGTH #37

@loeka

Description

@loeka

Hello everyone,

I have some unexpected behavior from the Intel node manager on an Intel board. Maybe you can help me. When I call the NMPRK_GetStatistics()-function it returns relatively often an error. The error is NMPRK_INVALID_RSP_LENGTH.

In the attachment are some of the build-in debugging logs of the NMPRK.

nmprk_short.log: There are two times the same request. The first one is the one with the error and the second is without.
nmprk_long.log: The same as nmprk_short.log with the full communication.
reproducer.cpp: Compile with g++ reproducer.cpp -I[path]/NMPRK/NMPRK/nmprkC -L. -lnmprkc -pthread pkg-config --cflags openssl pkg-config --libs openssl -o reproducer

As you can see request puts out two responses. If the response with the data is sent first the error is thrown.

I looked into the code of NMPRK and followed the calls to the function SendBridgedCommand() in transportInterfaceSlim.cpp. There are two function for the socket communication p->RequestResponse(bReq) and p->GetAsyncResponse(5000). They both resolve in two variants of IpmiSession::sendRecv(). So I thought the packages don't received in the order in they where sent because the RMCP protocol is UDP based. Even if I put a sleep(5) between the two sendRecv(), to nearly guarantee the right order, the error occurs.

test system:

Intel(R) Xeon(R) Gold 5120
Base Board Information
Manufacturer: Intel Corporation
Product Name: S2600BPB
Version: H87926-500

BMC Firmware Build Time : Sat Sep 7 13:21:40 2019
BIOS ID : SE5C620.86B.02.01.0009.092820190230
BMC FW Rev : 2.22.59c3b83a
Backup BMC FW Rev : 1.93.870cf4f0
Build ID : 59C3B83A
SDR Package Version : 1.41
Mgmt Engine (ME) FW Rev : 04.01.04.323

Thank you for your help.

nmprk_full.log
nmprk_short.log
reproducer.cpp.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions