From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.6 Path: eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.ada Subject: Re: Ada and software testing Date: Wed, 14 Jul 2021 12:56:08 -0700 Organization: A noiseless patient Spider Message-ID: <87lf68y8iv.fsf@nightsong.com> References: <871r84cq4r.fsf@nightsong.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="158c5d4bee3779fbf0a272d27e09ef8a"; logging-data="6444"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18UsTy+WiGuUMzFwfHxlf3/" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) Cancel-Lock: sha1:vffcUYVxo6v85XyIlViRSMRzq6U= sha1:vSb2t4J96LL1DD7AII1897pr23g= Xref: reader02.eternal-september.org comp.lang.ada:62381 List-Id: "Dmitry A. Kazakov" writes: > But if it does not and I/O completes without losing the processor, the > callback is called recursively *before* popping the queue and the > *same* portion of data is sent again. This is a garden variety concurrency bug that you're right, wouldn't normally be found with conventional fuzzing, but might be findable with stress testing. A more rigorous approach would involve model checking. This type of problem happens in C programs all the time as well, and doesn't really signify anything about the effectiveness of fuzz testing. Fuzzing is very effective against C programs, but tentatively maybe less so against Ada programs, because of Ada's more thorough type checking. > [The fix is to make recursive calls void] Hopefully there would be some locks between the tasks, though in that case the problem would show up as deadlock.