test-fullautomation / robotframework

Generic automation framework for acceptance testing and RPA
http://robotframework.org
Apache License 2.0
1 stars 0 forks source link

EXCEPTION [__bitp_send] : [WinError 10038] An operation was attempted on something that is not a socket #93

Open bhd1hi opened 2 months ago

bhd1hi commented 2 months ago

We encountered the following exception error while running Audio and voltage measurement tests which was run without thread keyword usage. !!! ERROR !!! [bitp_send_receive] : Expected answer from BITS-Platform not received within 20 seconds EXCEPTION [bitp_send] : [WinError 10038] An operation was attempted on something that is not a socket

For more details, please find enclosed log file. Kindly change file extension to ".html" from ".log". log_html.log ===================================Log lines ======== !!! ERROR !!! [bitp_send_receive] : Expected answer from BITS-Platform not received within 20 seconds [ ERROR ] !!! ERROR !!! [get_version] : !!! ERROR !!! [__bitp_send_receive] : Expected answer from BITS-Platform not received within 20 seconds EMC Test - audio Signal and voltage :: EMC Test - audio Signal and... !!! ERROR !!! [get_version] : !!! ERROR !!! [bitp_send_receive] : Expected answer from BITS-Platform not received within 20 seconds .===>(False, None) .[CMD]: AUDIO_ANALYZER UNIT_1 DATA GET / [PARAM]: PARAMETERSID 1_MIN Get BITS-Platform AudioAnalyzer [1] record data: '1_MIN' [CMD]: AUDIO_ANALYZER UNIT_1 DATA GET PARAMETERSID 1_MIN / [PARAM]: PARAMETERSID 1_MIN [ ERROR ] !!! ERROR !!! [audioanalyzer_get_data_record] : !!! ERROR !!! [bitp_send_receive] : !!! EXCEPTION !!! [bitp_send] : [WinError 10038] An operation was attempted on something that is not a socket Thank you.

test-fullautomation commented 2 months ago

Hi @HolQue , please look into this with high priority. Thank you, Thomas

HolQue commented 2 months ago

The error "An operation was attempted on something that is not a socket" is in most of the cases an aftereeffect only, and not a root cause. Something with the TCP/IP connection went wrong completely before (mostly a crash of anything else). The interface library is able to detect such kind of errors and tries to reconnect with the next keyword sent to the BITS-Platform. Preconditions are:

In a lot of cases these preconditions are not fulfilled completely. Then this problem can only be healed by a restart of all components.

This is not a standard error scenario and in most of the cases should not be reproducible (except the crash, happened before and caused the error, is also reproducible).

Recommendation:

All keywords of the BITS-Platform interface library return an acknowledge. If this acknowledge is False, the keyword was not be able to do the job. In this case the test should be aborted and the test result should be set to UNKNOWN. This avoids unwanted aftereffects.

In case you have a test that is able to reproduce this error, I would be very interested in learning about that.