Uploaded image for project: 'Apache HAWQ (Retired)'
  1. Apache HAWQ (Retired)
  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

              vvineet Vineet Goel
              jgaskin John Gaskin
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: