Annotation of embedaddon/curl/docs/BUGS, revision 1.1

1.1     ! misho       1:                                   _   _ ____  _
        !             2:                               ___| | | |  _ \| |
        !             3:                              / __| | | | |_) | |
        !             4:                             | (__| |_| |  _ <| |___
        !             5:                              \___|\___/|_| \_\_____|
        !             6: 
        !             7: BUGS
        !             8: 
        !             9:  1. Bugs
        !            10:   1.1 There are still bugs
        !            11:   1.2 Where to report
        !            12:   1.3 Security bugs
        !            13:   1.4 What to report
        !            14:   1.5 libcurl problems
        !            15:   1.6 Who will fix the problems
        !            16:   1.7 How to get a stack trace
        !            17:   1.8 Bugs in libcurl bindings
        !            18:   1.9 Bugs in old versions
        !            19: 
        !            20:  2. Bug fixing procedure
        !            21:  2.1 What happens on first filing
        !            22:  2.2 First response
        !            23:  2.3 Not reproducible
        !            24:  2.4 Unresponsive
        !            25:  2.5 Lack of time/interest
        !            26:  2.6 KNOWN_BUGS
        !            27:  2.7 TODO
        !            28:  2.8 Closing off stalled bugs
        !            29: 
        !            30: ==============================================================================
        !            31: 
        !            32: 1.1 There are still bugs
        !            33: 
        !            34:   Curl and libcurl keep being developed. Adding features and changing code
        !            35:   means that bugs will sneak in, no matter how hard we try not to.
        !            36: 
        !            37:   Of course there are lots of bugs left. And lots of misfeatures.
        !            38: 
        !            39:   To help us make curl the stable and solid product we want it to be, we need
        !            40:   bug reports and bug fixes.
        !            41: 
        !            42: 1.2 Where to report
        !            43: 
        !            44:   If you can't fix a bug yourself and submit a fix for it, try to report an as
        !            45:   detailed report as possible to a curl mailing list to allow one of us to
        !            46:   have a go at a solution. You can optionally also post your bug/problem at
        !            47:   curl's bug tracking system over at
        !            48: 
        !            49:         https://github.com/curl/curl/issues
        !            50: 
        !            51:   Please read the rest of this document below first before doing that!
        !            52: 
        !            53:   If you feel you need to ask around first, find a suitable mailing list and
        !            54:   post there. The lists are available on https://curl.haxx.se/mail/
        !            55: 
        !            56: 1.3 Security bugs
        !            57: 
        !            58:   If you find a bug or problem in curl or libcurl that you think has a
        !            59:   security impact, for example a bug that can put users in danger or make them
        !            60:   vulnerable if the bug becomes public knowledge, then please report that bug
        !            61:   using our security development process.
        !            62: 
        !            63:   Security related bugs or bugs that are suspected to have a security impact,
        !            64:   should be reported on the curl security tracker at HackerOne:
        !            65: 
        !            66:         https://hackerone.com/curl
        !            67: 
        !            68:   This ensures that the report reaches the curl security team so that they
        !            69:   first can be deal with the report away from the public to minimize the harm
        !            70:   and impact it will have on existing users out there who might be using the
        !            71:   vulnerable versions.
        !            72: 
        !            73:   The curl project's process for handling security related issues is
        !            74:   documented here:
        !            75: 
        !            76:         https://curl.haxx.se/dev/secprocess.html
        !            77: 
        !            78: 1.4 What to report
        !            79: 
        !            80:   When reporting a bug, you should include all information that will help us
        !            81:   understand what's wrong, what you expected to happen and how to repeat the
        !            82:   bad behavior. You therefore need to tell us:
        !            83: 
        !            84:    - your operating system's name and version number
        !            85: 
        !            86:    - what version of curl you're using (curl -V is fine)
        !            87: 
        !            88:    - versions of the used libraries that libcurl is built to use
        !            89: 
        !            90:    - what URL you were working with (if possible), at least which protocol
        !            91: 
        !            92:   and anything and everything else you think matters. Tell us what you
        !            93:   expected to happen, tell use what did happen, tell us how you could make it
        !            94:   work another way. Dig around, try out, test. Then include all the tiny bits
        !            95:   and pieces in your report. You will benefit from this yourself, as it will
        !            96:   enable us to help you quicker and more accurately.
        !            97: 
        !            98:   Since curl deals with networks, it often helps us if you include a protocol
        !            99:   debug dump with your bug report. The output you get by using the -v or
        !           100:   --trace options.
        !           101: 
        !           102:   If curl crashed, causing a core dump (in unix), there is hardly any use to
        !           103:   send that huge file to anyone of us. Unless we have an exact same system
        !           104:   setup as you, we can't do much with it. Instead we ask you to get a stack
        !           105:   trace and send that (much smaller) output to us instead!
        !           106: 
        !           107:   The address and how to subscribe to the mailing lists are detailed in the
        !           108:   MANUAL file.
        !           109: 
        !           110: 1.5 libcurl problems
        !           111: 
        !           112:   When you've written your own application with libcurl to perform transfers,
        !           113:   it is even more important to be specific and detailed when reporting bugs.
        !           114: 
        !           115:   Tell us the libcurl version and your operating system. Tell us the name and
        !           116:   version of all relevant sub-components like for example the SSL library
        !           117:   you're using and what name resolving your libcurl uses. If you use SFTP or
        !           118:   SCP, the libssh2 version is relevant etc.
        !           119: 
        !           120:   Showing us a real source code example repeating your problem is the best way
        !           121:   to get our attention and it will greatly increase our chances to understand
        !           122:   your problem and to work on a fix (if we agree it truly is a problem).
        !           123: 
        !           124:   Lots of problems that appear to be libcurl problems are actually just abuses
        !           125:   of the libcurl API or other malfunctions in your applications. It is advised
        !           126:   that you run your problematic program using a memory debug tool like
        !           127:   valgrind or similar before you post memory-related or "crashing" problems to
        !           128:   us.
        !           129: 
        !           130: 1.6 Who will fix the problems
        !           131: 
        !           132:   If the problems or bugs you describe are considered to be bugs, we want to
        !           133:   have the problems fixed.
        !           134: 
        !           135:   There are no developers in the curl project that are paid to work on bugs.
        !           136:   All developers that take on reported bugs do this on a voluntary basis. We
        !           137:   do it out of an ambition to keep curl and libcurl excellent products and out
        !           138:   of pride.
        !           139: 
        !           140:   But please do not assume that you can just lump over something to us and it
        !           141:   will then magically be fixed after some given time. Most often we need
        !           142:   feedback and help to understand what you've experienced and how to repeat a
        !           143:   problem. Then we may only be able to assist YOU to debug the problem and to
        !           144:   track down the proper fix.
        !           145: 
        !           146:   We get reports from many people every month and each report can take a
        !           147:   considerable amount of time to really go to the bottom with.
        !           148: 
        !           149: 1.7 How to get a stack trace
        !           150: 
        !           151:   First, you must make sure that you compile all sources with -g and that you
        !           152:   don't 'strip' the final executable. Try to avoid optimizing the code as
        !           153:   well, remove -O, -O2 etc from the compiler options.
        !           154: 
        !           155:   Run the program until it cores.
        !           156: 
        !           157:   Run your debugger on the core file, like '<debugger> curl core'. <debugger>
        !           158:   should be replaced with the name of your debugger, in most cases that will
        !           159:   be 'gdb', but 'dbx' and others also occur.
        !           160: 
        !           161:   When the debugger has finished loading the core file and presents you a
        !           162:   prompt, enter 'where' (without the quotes) and press return.
        !           163: 
        !           164:   The list that is presented is the stack trace. If everything worked, it is
        !           165:   supposed to contain the chain of functions that were called when curl
        !           166:   crashed. Include the stack trace with your detailed bug report. It'll help a
        !           167:   lot.
        !           168: 
        !           169: 1.8 Bugs in libcurl bindings
        !           170: 
        !           171:   There will of course pop up bugs in libcurl bindings. You should then
        !           172:   primarily approach the team that works on that particular binding and see
        !           173:   what you can do to help them fix the problem.
        !           174: 
        !           175:   If you suspect that the problem exists in the underlying libcurl, then
        !           176:   please convert your program over to plain C and follow the steps outlined
        !           177:   above.
        !           178: 
        !           179: 1.9 Bugs in old versions
        !           180: 
        !           181:   The curl project typically releases new versions every other month, and we
        !           182:   fix several hundred bugs per year. For a huge table of releases, number of
        !           183:   bug fixes and more, see: https://curl.haxx.se/docs/releases.html
        !           184: 
        !           185:   The developers in the curl project do not have bandwidth or energy enough to
        !           186:   maintain several branches or to spend much time on hunting down problems in
        !           187:   old versions when chances are we already fixed them or at least that they've
        !           188:   changed nature and appearance in later versions.
        !           189: 
        !           190:   When you experience a problem and want to report it, you really SHOULD
        !           191:   include the version number of the curl you're using when you experience the
        !           192:   issue. If that version number shows us that you're using an out-of-date
        !           193:   curl, you should also try out a modern curl version to see if the problem
        !           194:   persists or how/if it has changed in appearance.
        !           195: 
        !           196:   Even if you cannot immediately upgrade your application/system to run the
        !           197:   latest curl version, you can most often at least run a test version or
        !           198:   experimental build or similar, to get this confirmed or not.
        !           199: 
        !           200:   At times people insist that they cannot upgrade to a modern curl version,
        !           201:   but instead they "just want the bug fixed". That's fine, just don't count on
        !           202:   us spending many cycles on trying to identify which single commit, if that's
        !           203:   even possible, that at some point in the past fixed the problem you're now
        !           204:   experiencing.
        !           205: 
        !           206:   Security wise, it is almost always a bad idea to lag behind the current curl
        !           207:   versions by a lot. We keeping discovering and reporting security problems
        !           208:   over time see you can see in this table:
        !           209:   https://curl.haxx.se/docs/vulnerabilities.html
        !           210: 
        !           211: 2. Bug fixing procedure
        !           212: 
        !           213: 2.1 What happens on first filing
        !           214: 
        !           215:   When a new issue is posted in the issue tracker or on the mailing list, the
        !           216:   team of developers first need to see the report. Maybe they took the day
        !           217:   off, maybe they're off in the woods hunting. Have patience. Allow at least a
        !           218:   few days before expecting someone to have responded.
        !           219: 
        !           220:   In the issue tracker you can expect that some labels will be set on the
        !           221:   issue to help categorize it.
        !           222: 
        !           223: 2.2 First response
        !           224: 
        !           225:   If your issue/bug report wasn't perfect at once (and few are), chances are
        !           226:   that someone will ask follow-up questions. Which version did you use? Which
        !           227:   options did you use? How often does the problem occur? How can we reproduce
        !           228:   this problem? Which protocols does it involve? Or perhaps much more specific
        !           229:   and deep diving questions. It all depends on your specific issue.
        !           230: 
        !           231:   You should then respond to these follow-up questions and provide more info
        !           232:   about the problem, so that we can help you figure it out. Or maybe you can
        !           233:   help us figure it out. An active back-and-forth communication is important
        !           234:   and the key for finding a cure and landing a fix.
        !           235: 
        !           236: 2.3 Not reproducible
        !           237: 
        !           238:   For problems that we can't reproduce and can't understand even after having
        !           239:   gotten all the info we need and having studied the source code over again,
        !           240:   are really hard to solve so then we may require further work from you who
        !           241:   actually see or experience the problem.
        !           242: 
        !           243: 2.4 Unresponsive
        !           244: 
        !           245:   If the problem haven't been understood or reproduced, and there's nobody
        !           246:   responding to follow-up questions or questions asking for clarifications or
        !           247:   for discussing possible ways to move forward with the task, we take that as
        !           248:   a strong suggestion that the bug is not important.
        !           249: 
        !           250:   Unimportant issues will be closed as inactive sooner or later as they can't
        !           251:   be fixed. The inactivity period (waiting for responses) should not be
        !           252:   shorter than two weeks but may extend months.
        !           253: 
        !           254: 2.5 Lack of time/interest
        !           255: 
        !           256:   Bugs that are filed and are understood can unfortunately end up in the
        !           257:   "nobody cares enough about it to work on it" category. Such bugs are
        !           258:   perfectly valid problems that *should* get fixed but apparently aren't. We
        !           259:   try to mark such bugs as "KNOWN_BUGS material" after a time of inactivity
        !           260:   and if no activity is noticed after yet some time those bugs are added to
        !           261:   KNOWN_BUGS and are closed in the issue tracker.
        !           262: 
        !           263: 2.6 KNOWN_BUGS
        !           264: 
        !           265:   This is a list of known bugs. Bugs we know exist and that have been pointed
        !           266:   out but that haven't yet been fixed. The reasons for why they haven't been
        !           267:   fixed can involve anything really, but the primary reason is that nobody has
        !           268:   considered these problems to be important enough to spend the necessary time
        !           269:   and effort to have them fixed.
        !           270: 
        !           271:   The KNOWN_BUGS are always up for grabs and we will always love the ones who
        !           272:   bring one of them back to live and offers solutions to them.
        !           273: 
        !           274:   The KNOWN_BUGS document has a sibling document known as TODO.
        !           275: 
        !           276: 2.7 TODO
        !           277: 
        !           278:   Issues that are filed or reported that aren't really bugs but more missing
        !           279:   features or ideas for future improvements and so on are marked as
        !           280:   'enhancement' or 'feature-request' and will be added to the TODO document
        !           281:   instead and the issue is closed. We don't keep TODO items in the issue
        !           282:   tracker.
        !           283: 
        !           284:   The TODO document is full of ideas and suggestions of what we can add or fix
        !           285:   one day. You're always encouraged and free to grab one of those items and
        !           286:   take up a discussion with the curl development team on how that could be
        !           287:   implemented or provided in the project so that you can work on ticking it
        !           288:   odd that document.
        !           289: 
        !           290:   If the issue is rather a bug and not a missing feature or functionality, it
        !           291:   is listed in KNOWN_BUGS instead.
        !           292: 
        !           293: 2.8 Closing off stalled bugs
        !           294: 
        !           295:   The issue and pull request trackers on https://github.com/curl/curl will
        !           296:   only hold "active" entries (using a non-precise definition of what active
        !           297:   actually is, but they're at least not completely dead). Those that are
        !           298:   abandoned or in other ways dormant will be closed and sometimes added to
        !           299:   TODO and KNOWN_BUGS instead.
        !           300: 
        !           301:   This way, we only have "active" issues open on github. Irrelevant issues and
        !           302:   pull requests will not distract developers or casual visitors.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>