[gnutls-help] GNUTLS_E_PULL_ERROR in gnutls_record_recv

Nikos Mavrogiannopoulos nmav at gnutls.org
Wed Sep 23 13:05:10 CEST 2015

On Tue, Sep 22, 2015 at 11:37 PM, Max Bruce <max.bruce12 at gmail.com> wrote:
> I can't find online what it means, and the name is not very specific. It's
> not consistent, if I restart the server several times, it'll work eventually
> for a while. TCP is all fine, and the handshake works fine. When I write a
> HTTP request over gnutls-cli, it doesn't throw any errors until the
> connection times out, but my server throws this after receiving a STDIN(it's
> all non blocking IO).
> Code:
> int i = gnutls_record_recv(sessiond, ra, size);
> if(i < 0) {
> free(ra);
> errno = i;
> return NULL;
> }
> It seems to have started after we tested this on a Debian box, rather than
> an Ubuntu one. No code has changed, and the GNUTLS & supporting library
> version are the same.

A pull error is an error in recv(). You can use the debugging
information provided by gnutls (e.g., via setting the env variable
GNUTLS_DEBUG_LEVEL) to get more information on the failure. I'd also
recommend to check the gnutls manual at: www.gnutls.org/manual


More information about the Gnutls-help mailing list