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>