On 9/28/07, Zack Weinberg <[EMAIL PROTECTED]> wrote: > I don't speak German, but I suspected that "Die Wartezeit für die > Verbindung ist abgelaufen" was a kernel failure message, so I looked > it up in glibc's message translations, and indeed: it means > "Connection timed out" in English. This is a normal network condition > -- for whatever reason, your computer and the server stopped talking > to each other before the pull was finished. If you do it again it > will probably pick up where it left off.
Looking at the code a bit, the diagnostic originates in the Netxx library. This library documents two different exceptions that it might throw - Netxx::NetworkException for problems on the network, Netxx::Exception for problems indicating bugs in the library user. But the library itself blithely assumes that all failures from a given system call will be one or the other, which just isn't so. In particular, the OP's diagnostic comes from a recv(2) failure with errno=ETIMEDOUT, and all recv() failures cause Netxx::Exception to be thrown. So - monotone isn't actually doing anything wrong, this is a bug in netxx. Is there any hope of getting it fixed upstream? I do not relish the thought of auditing the two-dozen or so places where netxx throws exceptions and fixing them to pay attention to errno. Tangentially, the chain of "foo error:" strings that get tacked on the beginning of the actual error message is getting kind of absurd here, doncha think? -- mtn: Fataler Fehler: std::runtime_error: Netzwerk-Fehler: recv failure: (with precisely half of them translated, for additional comedy.) I think we maybe ought not do things like this in intermediate layers catch (Netxx::Exception & e) { throw oops((F("network error: %s") % e.what()).str());; } instead we should catch the various library exceptions that will cause program termination in the outermost catch chain (in cpp_main.) zw
_______________________________________________ Monotone-devel mailing list Monotone-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/monotone-devel