Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Builder curl-pr-unthreaded-solaris10-i386 Build #3553

Results:

Build successful

SourceStamp:

Projectcurl/curl
Repositoryhttps://github.com/curl/curl
Branchmaster
Revisiondf672695e5992ad9b99819e9950de682e243cb48
Got Revisiondf672695e5992ad9b99819e9950de682e243cb48
Changes1 change

BuildSlave:

unstable10x

Reason:

The AnyBranchScheduler scheduler named 'schedule-curl-pr' triggered this build

Steps and Logfiles:

  1. git update ( 8 secs )
    1. stdio
  2. Runtest './tests/testcurl.pl --nogitpull ...' ( 1 hrs, 14 mins, 17 secs )
    1. stdio
    2. resultlog

Build Properties:

NameValueSource
branch master Build
builddir /export/home/buildbot/slave/curl-pr-unthreaded-solaris10-i386 slave
buildername curl-pr-unthreaded-solaris10-i386 Builder
buildnumber 3553 Build
codebase Build
got_revision df672695e5992ad9b99819e9950de682e243cb48 Git
osplatform I386 SetPropertyFromCommand Step
osrelease 10 SetPropertyFromCommand Step
project curl/curl Build
repository https://github.com/curl/curl Build
revision df672695e5992ad9b99819e9950de682e243cb48 Build
scheduler schedule-curl-pr Scheduler
slavename unstable10x BuildSlave
workdir /export/home/buildbot/slave/curl-pr-unthreaded-solaris10-i386 slave (deprecated)

Forced Build Properties:

NameLabelValue

Responsible Users:

  1. Stefan Eissing

Timing:

StartSun Mar 2 12:08:21 2025
EndSun Mar 2 17:04:27 2025
Elapsed4 hrs, 56 mins, 5 secs

All Changes:

:

  1. Change #223519

    Category None
    Changed by Stefan Eissing <stefanohnoyoudont@eissing.org>
    Changed at Sun 02 Mar 2025 11:13:34
    Repository https://github.com/curl/curl
    Project curl/curl
    Branch master
    Revision df672695e5992ad9b99819e9950de682e243cb48

    Comments

    shutdowns: split shutdown handling from connection pool
    
    Further testing with timeouts in event based processing revealed that
    our current shutdown handling in the connection pool was not clear
    enough. Graceful shutdowns can only happen inside a multi handle and it
    was confusing to track in the code which situation actually applies. It
    seems better to split the shutdown handling off and have that code
    always be part of a multi handle.
    
    Add `cshutdn.[ch]` with its own struct to maintain connections being
    shut down. A `cshutdn` always belongs to a multi handle and uses that
    for socket/timeout monitoring.
    
    The `cpool`, which can be part of a multi or share, either passes
    connections to a `cshutdn` or terminates them with a one-time, best
    effort.
    
    Add an `admin` easy handle to each multi and share. This is used to
    perform all maintenance operations where no "real" easy handle is
    available. This solves the problem that the multi admin handle requires
    some additional initialisation (e.g. timeout list).
    
    The share needs its admin handle as it is often cleaned up when no other
    transfer or multi handle exists any more. But we need a `data` in almost
    every call.
    
    Fix file:// handling of errors when adding a new connection to the pool.
    
    Changes in `curl` itself:
    
    - for parallel transfers, do not set a connection pool in the share,
      rely on the multi's connection pool instead. While not a requirement
      for the new `cshutdn` to work, this is
    
      a) helpful in testing to trigger graceful shutdowns
      b) a broader code coverage of libcurl via the curl tool
    
    - on test_event with uv, cleanup the multi handle before returning from
      parallel_event(). The uv struct is on the stack, cleanup of the multi
      later will crash when it tries to register sockets. This is a "eat
      your own dogfood" related fix.
    
    Closes #16508

    Changed files

    • lib/Makefile.inc
    • lib/cfilters.c
    • lib/conncache.c
    • lib/conncache.h
    • lib/connect.c
    • lib/connect.h
    • lib/cshutdn.c
    • lib/cshutdn.h
    • lib/easy.c
    • lib/ftp.c
    • lib/ftp.h
    • lib/hostip.c
    • lib/multi.c
    • lib/multihandle.h
    • lib/pingpong.c
    • lib/share.c
    • lib/share.h
    • lib/url.c
    • lib/urldata.h
    • lib/vtls/vtls.c
    • src/tool_operate.c
    • tests/data/test1554
    • tests/http/test_19_shutdown.py