Annotation of embedaddon/curl/docs/BUGS, revision 1.1.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>