cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: release delay

From: Michael Wallner <mike_at_iworks.at>
Date: Thu, 07 Jun 2007 11:57:03 +0200

Michael Wallner wrote:

> I'm still investigating my curl_share issue. I've not been able to write
> a short reproduce case yet, but I know it stopped working for me with 7.16.1,
> as it works with 7.16.0 and doesn't with .1, .2 and CVS HEAD.

Not working means infinitely hanging in poll(0,0,1000) here.

A GDB backtrace, if it helps anything in the meantime:

mike_at_honeybadger:~/build/php-5.2-debug$ gdb --args sapi/cli/php ~/cvs/pecl/http/tests/HttpRequestDataShare_001.phpt
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) r
Starting program: /home/mike/build/php-5.2-debug/sapi/cli/php /home/mike/cvs/pecl/http/tests/HttpRequestDataShare_001.phpt
[Thread debugging using libthread_db enabled]
[New Thread -1213864256 (LWP 28001)]
--TEST--
HttpRequestDataShare
--SKIPIF--
--FILE--
-TEST
# About to connect() to www.php.net port 80 (#0)
# Trying 69.147.83.197... # connected
# Connected to www.php.net (69.147.83.197) port 80 (#0)
< GET / HTTP/1.1\x0D\x0A
< User-Agent: PECL::HTTP/1.6.0dev (PHP/5.2.3-dev)\x0D\x0A
< Host: www.php.net\x0D\x0A
< Accept: */*\x0D\x0A
< \x0D\x0A

Program received signal SIGINT, Interrupt.
[Switching to Thread -1213864256 (LWP 28001)]
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7b2585b in poll () from /lib/tls/i686/cmov/libc.so.6
#2 0xb7f3643b in wait_ms (timeout_ms=1000) at select.c:133
#3 0xb7f3674b in Curl_socket_ready (readfd=-1, writefd=-1, timeout_ms=1000) at select.c:193
#4 0xb7f2d98a in Curl_perform (data=0x86d7398) at transfer.c:1849
#5 0xb7f2e26d in curl_easy_perform (curl=0x86d7398) at easy.c:492
#6 0x08343227 in _http_request_exec (request=0x86a16bc) at /home/mike/cvs/php-5.2/ext/http/http_request_api.c:892
#7 0x08332c2b in zim_HttpRequest_send (ht=0, return_value=0x86a2064, return_value_ptr=0x0, this_ptr=0x86a6a88, return_value_used=0, tsrm_ls=0x854b018)
    at /home/mike/cvs/php-5.2/ext/http/http_request_object.c:1823
#8 0x083f52a8 in zend_do_fcall_common_helper_SPEC (execute_data=0xbfc17680, tsrm_ls=0x854b018) at /home/mike/cvs/php-5.2/Zend/zend_vm_execute.h:200
#9 0x083f6296 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0xbfc17680, tsrm_ls=0x854b018) at /home/mike/cvs/php-5.2/Zend/zend_vm_execute.h:322
#10 0x083f4d42 in execute (op_array=0x869e020, tsrm_ls=0x854b018) at /home/mike/cvs/php-5.2/Zend/zend_vm_execute.h:92
#11 0x083cc8b1 in zend_execute_scripts (type=8, tsrm_ls=0x854b018, retval=0x0, file_count=3) at /home/mike/cvs/php-5.2/Zend/zend.c:1134
#12 0x08367267 in php_execute_script (primary_file=0xbfc19a04, tsrm_ls=0x854b018) at /home/mike/cvs/php-5.2/main/main.c:1794
#13 0x08452515 in main (argc=2, argv=0xbfc19b84) at /home/mike/cvs/php-5.2/sapi/cli/php_cli.c:1138
(gdb) f 4
#4 0xb7f2d98a in Curl_perform (data=0x86d7398) at transfer.c:1849
1849 switch (Curl_socket_ready(fd_read, fd_write, 1000)) {
(gdb) p *data
$1 = {
  dns = {
    hostcache = 0x86d3c90,
    hostcachetype = HCACHE_SHARED
  },
  multi = 0x0,
  multi_pos = 0x0,
  share = 0x86d3c70,
  reqdata = {
    pathbuffer = 0x86d4998 "/",
    path = 0x86d4998 "/",
    newurl = 0x0,
    keep = {
      size = -1,
      bytecountp = 0x86d4cd8,
      maxdownload = -1,
      writebytecountp = 0x0,
      bytecount = 0,
      writebytecount = 0,
      headerbytecount = 0,
      deductheadercount = 0,
      start = {
        tv_sec = 1181209778,
        tv_usec = 380167
      },
      now = {
        tv_sec = 1181209785,
        tv_usec = 399491
      },
      header = true,
      badheader = HEADER_NORMAL,
      headerline = 0,
      hbufp = 0x86d3f50 "\020?\020?",
      hbuflen = 0,
      str = 0x0,
      str_start = 0x0,
      end_ptr = 0x0,
      p = 0x0,
      content_range = false,
      offset = 0,
      httpcode = 0,
      httpversion = -1,
      start100 = {
        tv_sec = 0,
        tv_usec = 0
      },
      write_after_100_header = false,
      wait100_after_headers = false,
      content_encoding = 0,
      zlib_init = ZLIB_UNINIT,
      z = {
        next_in = 0x0,
        avail_in = 0,
---Type <return> to continue, or q <return> to quit---
        total_in = 0,
        next_out = 0x0,
        avail_out = 0,
        total_out = 0,
        msg = 0x0,
        state = 0x0,
        zalloc = 0,
        zfree = 0,
        opaque = 0x0,
        data_type = 0,
        adler = 0,
        reserved = 0
      },
      timeofdoc = 0,
      bodywrites = 0,
      buf = 0x86d77d8 "",
      uploadbuf = 0x86db7d9 "",
      maxfd = 6,
      keepon = 5,
      upload_done = false,
      ignorebody = false,
      ignorecl = false
    },
    upload_present = 0,
    upload_fromhere = 0x0,
    size = -1,
    bytecountp = 0x86d4cd8,
    maxdownload = -1,
    writebytecountp = 0x0,
    use_range = false,
    rangestringalloc = false,
    range = 0x0,
    resume_from = 0,
    proto = {
      http = 0x86d4cc0,
      https = 0x86d4cc0,
      ftp = 0x86d4cc0,
      tftp = 0x86d4cc0,
      file = 0x86d4cc0,
      telnet = 0x86d4cc0,
      generic = 0x86d4cc0,
      ssh = 0x86d4cc0
    }
  },
  set = {
    err = 0xb7b9d560,
    debugdata = 0x86a16bc,
    errorbuffer = 0x86a1748 "",
    proxyuserpwd = 0x0,
    proxyport = 0,
    out = 0xb7b9d4c0,
    in = 0x0,
    writeheader = 0x0,
---Type <return> to continue, or q <return> to quit---
    set_url = 0x86a2d98 "http://www.php.net/",
    proxy = 0x0,
    use_port = 0,
    userpwd = 0x0,
    httpauth = 1,
    proxyauth = 1,
    set_range = 0x0,
    followlocation = 0,
    maxredirs = -1,
    set_referer = 0x0,
    free_referer = false,
    useragent = 0x84f3e7c "PECL::HTTP/1.6.0dev (PHP/5.2.3-dev)",
    encoding = 0x0,
    postfields = 0x0,
    postfieldsize = 0,
    ftpport = 0x0,
    device = 0x0,
    localport = 0,
    localportrange = 0,
    fwrite = 0x833ddc2 <http_curl_dummy_callback>,
    fwrite_header = 0,
    fread = 0x8343365 <http_curl_read_callback>,
    fprogress = 0,
    fdebug = 0x83437a6 <http_curl_raw_callback>,
    ioctl = 0x83436f7 <http_curl_ioctl_callback>,
    fsockopt = 0,
    sockopt_client = 0x0,
    convfromnetwork = 0,
    convtonetwork = 0,
    convfromutf8 = 0,
    progress_client = 0x0,
    ioctl_client = 0x0,
    timeout = 0,
    connecttimeout = 3000,
    ftp_response_timeout = 0,
    infilesize = 0,
    low_speed_limit = 0,
    low_speed_time = 0,
    max_send_speed = -5191843719665418240,
    max_recv_speed = -5191843719665418240,
    set_resume_from = 0,
    cookie = 0x0,
    headers = 0x0,
    httppost = 0x0,
    cert = 0x0,
    cert_type = 0x0,
    key = 0x0,
    key_type = 0x0,
    key_passwd = 0x0,
    cookiejar = 0x0,
    cookiesession = false,
    crlf = false,
    ftp_account = 0x0,
---Type <return> to continue, or q <return> to quit---
    ftp_alternative_to_user = 0x0,
    quote = 0x0,
    postquote = 0x0,
    prequote = 0x0,
    source_quote = 0x0,
    source_prequote = 0x0,
    source_postquote = 0x0,
    telnet_options = 0x0,
    timecondition = CURL_TIMECOND_NONE,
    timevalue = 0,
    httpreq = HTTPREQ_GET,
    customrequest = 0x0,
    httpversion = 0,
    auth_host = 0x0,
    krb4_level = 0x0,
    ssl = {
      version = 0,
      certverifyresult = 0,
      verifypeer = 0,
      verifyhost = 0,
      CApath = 0x0,
      CAfile = 0x84f3ea0 "/usr/local/curl-CVS/share/curl/curl-ca-bundle.crt",
      random_file = 0x0,
      egdsocket = 0x0,
      cipher_list = 0x0,
      numsessions = 5,
      fsslctx = 0,
      fsslctxp = 0x0,
      sessionid = true
    },
    proxytype = CURLPROXY_HTTP,
    dns_cache_timeout = 60,
    buffer_size = 0,
    private_data = 0x86a16bc "\230sm\b\230-j\b\001",
    one_easy = 0x0,
    http200aliases = 0x0,
    ip_version = 0,
    max_filesize = 0,
    source_url = 0x0,
    source_userpwd = 0x0,
    ftp_filemethod = FTPFILE_MULTICWD,
    printhost = false,
    get_filetime = true,
    tunnel_thru_httpproxy = false,
    prefer_ascii = false,
    ftp_append = false,
    ftp_list_only = false,
    ftp_create_missing_dirs = false,
    ftp_use_port = false,
    hide_progress = true,
    http_fail_on_error = false,
    http_follow_location = false,
    http_disable_hostname_check_before_authentication = false,
---Type <return> to continue, or q <return> to quit---
    include_header = false,
    http_set_referer = false,
    http_auto_referer = true,
    opt_no_body = false,
    set_port = false,
    upload = false,
    use_netrc = CURL_NETRC_IGNORED,
    netrc_file = 0x0,
    verbose = true,
    krb4 = false,
    reuse_forbid = false,
    reuse_fresh = false,
    ftp_use_epsv = true,
    ftp_use_eprt = true,
    ftp_ssl = CURLFTPSSL_NONE,
    ftpsslauth = CURLFTPAUTH_DEFAULT,
    ftp_ccc = CURLFTPSSL_CCC_NONE,
    no_signal = true,
    global_dns_cache = false,
    tcp_nodelay = false,
    ignorecl = false,
    ftp_skip_ip = false,
    connect_only = false,
    ssh_auth_types = -1,
    ssh_public_key = 0x0,
    ssh_private_key = 0x0,
    http_te_skip = false,
    http_ce_skip = false
  },
  change = {
    url = 0x86a2d98 "http://www.php.net/",
    url_alloc = false,
    url_changed = false,
    referer = 0x0,
    referer_alloc = false,
    cookielist = 0x0
  },
  cookies = 0x86d3d70,
  progress = {
    lastshow = 1181209785,
    size_dl = 0,
    size_ul = 0,
    downloaded = 0,
    uploaded = 0,
    current_speed = 0,
    callback = false,
    width = 0,
    flags = 16,
    timespent = 7.2388589999999997,
    dlspeed = 0,
    ulspeed = 0,
    t_nslookup = 0.022876000000000001,
    t_connect = 0.21921299999999999,
---Type <return> to continue, or q <return> to quit---
    t_pretransfer = 0.219531,
    t_starttransfer = 0,
    t_redirect = 0,
    start = {
      tv_sec = 1181209778,
      tv_usec = 160633
    },
    t_startsingle = {
      tv_sec = 1181209778,
      tv_usec = 160636
    },
    speeder = {0, 0, 0, 0, 0, 0},
    speeder_time = {{
        tv_sec = 1181209785,
        tv_usec = 399492
      }, {
        tv_sec = 1181209780,
        tv_usec = 387237
      }, {
        tv_sec = 1181209781,
        tv_usec = 391200
      }, {
        tv_sec = 1181209782,
        tv_usec = 395162
      }, {
        tv_sec = 1181209783,
        tv_usec = 395131
      }, {
        tv_sec = 1181209784,
        tv_usec = 395099
      }},
    speeder_c = 7
  },
  state = {
    used_interface = Curl_if_easy,
    connc = 0x86d43f0,
    keeps_speed = {
      tv_sec = 1181209785,
      tv_usec = 399491
    },
    lastconnect = -1,
    headerbuff = 0x86d3f50 "\020?\020?",
    headersize = 256,
    buffer = '\0' <repeats 16384 times>,
    uploadbuffer = '\0' <repeats 16384 times>,
    current_speed = -1,
    this_is_a_follow = false,
    is_in_pipeline = false,
    first_host = 0x86d4e08 "www.php.net",
    session = 0x86d4510,
    sessionage = 1,
    scratch = 0x0,
    errorbuf = false,
---Type <return> to continue, or q <return> to quit---
    os_errno = 0,
    prev_signal = 0,
    allow_port = true,
    digest = {
      nonce = 0x0,
      cnonce = 0x0,
      realm = 0x0,
      algo = 0,
      stale = false,
      opaque = 0x0,
      qop = 0x0,
      algorithm = 0x0,
      nc = 0
    },
    proxydigest = {
      nonce = 0x0,
      cnonce = 0x0,
      realm = 0x0,
      algo = 0,
      stale = false,
      opaque = 0x0,
      qop = 0x0,
      algorithm = 0x0,
      nc = 0
    },
    authhost = {
      want = 1,
      picked = 0,
      avail = 0,
      done = true,
      multi = false
    },
    authproxy = {
      want = 1,
      picked = 0,
      avail = 0,
      done = true,
      multi = false
    },
    authproblem = false,
    areschannel = 0x86d3de0,
    engine = 0x0,
    expiretime = {
      tv_sec = 0,
      tv_usec = 0
    },
    timenode = {
      smaller = 0x0,
      larger = 0x0,
      same = 0x0,
      key = 0,
      payload = 0x0
    },
---Type <return> to continue, or q <return> to quit---
    most_recent_ftp_entrypath = 0x0,
    ftp_trying_alternative = false,
    expect100header = false,
    pipe_broke = false,
    cancelled = false,
    prev_block_had_trailing_cr = false,
    crlf_conversions = 0,
    shared_conn = 0x0,
    closed = false
  },
  info = {
    httpcode = 0,
    httpproxycode = 0,
    httpversion = 0,
    filetime = -1,
    header_size = 0,
    request_size = 99,
    proxyauthavail = 0,
    httpauthavail = 0,
    numconnects = 1,
    contenttype = 0x0
  },
  magic = 3235830701
}

-- 
Michael
Received on 2007-06-07