Uploaded image for project: 'Apache HAWQ'
  1. Apache HAWQ
  2. HAWQ-1486

PANIC accessing PXF HDFS table

    XMLWordPrintableJSON

    Details

      Description

      This code doesn't catch the case when churl_init_download() returns NULL. This seems to trigger a segfault at libcurl level.

      Looks like we failed to connect to PXF (?).
      
      Piece of code in HAWQ handling cUrl calls (pxfutils.c):
      
       100 static void process_request(ClientContext* client_context, char *uri)
       101 {
       102     size_t n = 0;
       103     char buffer[RAW_BUF_SIZE];
       104
       105     print_http_headers(client_context->http_headers);
       106     client_context->handle = churl_init_download(uri, client_context->http_headers);
       107     memset(buffer, 0, RAW_BUF_SIZE);
       108     resetStringInfo(&(client_context->the_rest_buf));
       109
       110     /*
       111      * This try-catch ensures that in case of an exception during the "communication with PXF and the accumulation of
       112      * PXF data in client_context->the_rest_buf", we still get to terminate the libcurl connection nicely and avoid
       113      * leaving the PXF server connection hung.
       114      */
       115     PG_TRY();
       116     {
       117         /* read some bytes to make sure the connection is established */
       118         churl_read_check_connectivity(client_context->handle);
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                vVineet Vineet Goel
                Reporter:
                jgaskin John Gaskin
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: