Open martinlindhe opened 6 years ago
I worked around this in my project by instead using curl-rust, using the following code
fn stdout_from_vm_http(prober_com: &str) -> String {
use curl::easy::{Easy, Form};
let mut dst = Vec::new();
let mut easy = Easy::new();
easy.url("http://10.10.30.63:28111/run").unwrap();
let mut form = Form::new();
form.part("com").file(prober_com).add();
easy.httppost(form).unwrap();
{
let mut transfer = easy.transfer();
transfer.write_function(|data| {
dst.extend_from_slice(data);
Ok(data.len())
}).unwrap();
transfer.perform().unwrap();
}
str::from_utf8(&dst).unwrap().to_owned()
}
I would like to assist in analysing this issue more, but I am a bit clueless of where to begin.
As posted above, I have a "mostly" reproducible scenario for this issue.
I'm off to elsewhere, but please ping me if I can be of any help
I have noticed before the multipart tests time out, I just assumed it was flakiness in Travis CI. To try to start debugging this, I'd look into the multipart file in this repo, and maybe add some trace!
lines.
Hello
I tried using reqwest to upload a file to a small golang webserver I am running inside a VM, this mostly works but every 50-200 or so request fails.
The error I eventually see in the client is
thread panicked at 'called
Result::unwrap()on an
Errvalue: Error { kind: Io(Custom { kind: WouldBlock, error: StringError("timed out") }), url: Some("http://10.10.30.63:28111/run") }', libcore/result.rs:945:5
and in the server:
multipart: NextPart: unexpected EOF
This is what i do with reqwest
Where http://10.10.30.63:28111/run is provided by https://github.com/martinlindhe/supersafe
In order to verify that the issue is unrelated to the server code, I re-ran using curl, with no issues: