Hi Al, Thanks for looking into this further! I made the code change to ipmiconsole_processing.c and it seems to be working fine now.
Do you have any rough idea of when you might ship a release with this fix? I don't mind building my own from a branch/with a local patch, I'm just curious as I'd like to use an official release eventually. Thanks! David > Subject: RE: [Freeipmi-users] Problem pasting data into ipmiconsole > From: [email protected] > To: [email protected] > CC: [email protected] > Date: Mon, 30 Jun 2014 08:31:09 -0700 > > Hi David, > > It just occurred to me. The "sol payload size" workaround might work > for you. While it was originally intended to deal w/ motherboards that > report invalid sol payload sizes being out of range (sometimes b/c of > incorrect endian), it can probably work for you as well. It'll force > libipmiconsole to use a defined small max character send rate, currently > 32. > > Then I looked at your log to make sure 32 was smaller than your > machine's max: > > hostname: [ 2Eh] = inbound_payload_size[16b] > hostname: [ FFh] = outbound_payload_size[16b] > > Huh ... your machine remotes 2Eh as the max, which is 46. Which is less > than the amount shown in some of your packets in the debug trace. Some > of those packets are sending > 50 characters. > > then looking in the code for libipmiconsole > > c->session.max_sol_character_send_size = max_outbound_payload_size - > sol_hdr_len; > > I should be coding based on the max *inbound* not outbound size. No one > has hit this bug in the many years ipmiconsole has been around :P > > If you're ok trying a beta fix, I can give you a URL to a branch in the > next day or two (not on a workstation right now). Or if you have the > code, it's a simple logic change in ipmiconsole_processing.c. > > But in the mean time, try the "sol payload size" workaround and see if > the problem goes away. > > Al > > On Sat, 2014-06-28 at 10:42 +1000, David O'Shea wrote: > > Hi Albert, > > > > Thanks for your reply. A workaround where I invoked an API to set the > > maximum number of characters sent at a time sounds fine, I could do > > some experiments to work out what value works with the iDRAC and > > report back so that this can be documented. > > > > Going back to my code where I want to interact with libipmiconsole, I > > assume that with the current version of libipmiconsole, if I was to > > just write() to the file descriptor in smaller chunks, that wouldn't > > help because libipmiconsole might combine the chunks into a larger > > chunk that exceeds what the iDRAC supports. Is that correct? > > > > Thanks in advance, > > David > > > > > Subject: Re: [Freeipmi-users] Problem pasting data into ipmiconsole > > > From: [email protected] > > > To: [email protected] > > > CC: [email protected] > > > Date: Fri, 27 Jun 2014 10:23:15 -0700 > > > > > > Hi David, > > > > > > Lets see on line 1001, we see the packet that is being sent w/ your > > > data. You can see in the character_data buffers lots of "20h 30h" > > hex, > > > which is ascii spaces and 0's. > > > > > > As you deduced properly, the remote BMC is nacking the packet. > > > According to the IPMI spec, "the BMC is unable to accept all > > character > > > data from this packet." > > > > > > Well that sucks. It seems the Dell BMC just can't handle that much > > > simultaneous data being sent. I tried this on some motherboards I > > have > > > locally that are not Dells and these BMCs were able to handle much > > > larger cut & pastes with ease. > > > > > > We could program a workaround/option into ipmiconsole/libipmiconsole > > > that could max-cap the number of characters a "SOL Remote Console to > > > BMC" packet is allowed to send at the same time, to alleviate this > > > situation for your BMC. libimiconsole could even be smart enough to > > > recognize when too many NACKs happen in a row and try to decrease > > the > > > characters sent in one packet, although I'm not sure how hard that > > would > > > be to program right now. It's a bit more sophisticated and would > > take > > > time, but the workaround option would be much easier. > > > > > > Al > > > > > > On Fri, 2014-06-27 at 12:04 +1000, David O'Shea wrote: > > > > Hi all, > > > > > > > > With version 1.2.1-6.el6_5 RPM from CentOS 6, when I ran > > 'ipmiconsole' > > > > and pasted in a fairly small amount of data (maybe 15 or so > > > > characters), I got "[error received]: excess retransmissions > > sent". I > > > > got a similar issue when writing about that much data from a > > Python > > > > script using libipmiconsole. I figured this means I should move on > > to > > > > a newer version. > > > > > > > > With version 1.4.3, which I built from source with debugging > > enabled, > > > > it seems like I need to paste a bit more data to trigger problems. > > In > > > > this case, I don't get an error like the above, instead things > > just > > > > seem to get "stuck": I never seem to get a response from the > > remote > > > > system, but sending an escape sequence still works. > > > > > > > > I started ipmiconsole, pasted " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > > 0 0 > > > > 0 0 0 0 0 0 0 0" (54 characters long), then after a few seconds I > > used > > > > ".." to terminate: > > > > > > > > """ > > > > $ [...]/freeipmi-1.4.3/ipmiconsole/ipmiconsole -h hostname -u > > admin -p calvin -e . --debug --debugfile > > > > [SOL established] > > > > > > > > [closing the connection] > > > > """ > > > > > > > > The target is a Dell iDRAC7 with firmware version 1.56.55. > > > > > > > > I put some of the log file that was generated up at > > > > https://gist.github.com/dcoshea/e7a15e34395c09da2f81 (after > > replacing > > > > the hostname with "hostname"). If you go to line 889 > > > > > > [https://gist.github.com/dcoshea/e7a15e34395c09da2f81#file-gistfile1-txt-L889], > > > > this seems to be the part that relates to when I pasted in the > > text. > > > > It seems that ipmiconsole keeps re-sending the data and the iDRAC > > > > keeps responding with NACKs. The entire log contains 2000 of these > > > > messages: > > > > > > > > (ipmiconsole_processing.c, _sol_bmc_to_remote_console_packet, > > 2672): hostname=hostname; protocol_state=9h: SOL packet NACKED: > > accepted_character_count: accepted_character_count = 0, > > c->session.sol_input_character_data_len = 54 > > > > > > > > Thanks in advance, > > > > David > > > > > > > > _______________________________________________ > > > > Freeipmi-users mailing list > > > > [email protected] > > > > https://lists.gnu.org/mailman/listinfo/freeipmi-users > > > -- > > > Albert Chu > > > [email protected] > > > Computer Scientist > > > High Performance Systems Division > > > Lawrence Livermore National Laboratory > > > > > > > > > -- > Albert Chu > [email protected] > Computer Scientist > High Performance Systems Division > Lawrence Livermore National Laboratory > _______________________________________________ Freeipmi-users mailing list [email protected] https://lists.gnu.org/mailman/listinfo/freeipmi-users
