NBISweden / MrBayes

MrBayes is a program for Bayesian inference and model choice across a wide range of phylogenetic and evolutionary models. For documentation and downloading the program, please see the home page:
http://NBISweden.github.io/MrBayes/
GNU General Public License v3.0
234 stars 79 forks source link

Completion of error handling #289

Closed elfring closed 1 year ago

elfring commented 1 year ago

:eyes: I have looked at a few source files for your current software. I have noticed that some checks for return codes are missing.

:thought_balloon: Would you like to add more error handling for return values from functions like the following?

kusalananda commented 1 year ago

👀 I have looked at a few source files for your current software. I have noticed that some checks for return codes are missing.

💭 Would you like to add more error handling for return values from functions like the following?

I fully agree that not checking the returned values from calls to library functions is potentially problematic and that it theoretically means that certain error conditions go unchecked, but this will not be fixed unless you can show that the program, when used in a typical environment, misbehaves as a consequence of not checking the return value of these calls.

As mentioned in other responses to your issues, this project is in maintenance mode, and our current efforts concern dealing with bugs that are demonstratively causing issues for users.

elfring commented 1 year ago

:thought_balloon: I suggest to avoid ignorance of return values a bit more. Would you like to detect every error situation as early as possible?

:crystal_ball: Under which circumstances will you care more also for data output failures?

kusalananda commented 1 year ago

💭 I suggest to avoid ignorance of return values a bit more. Would you like to detect every error situation as early as possible?

Yes, please, that would be nice.

🔮 Under which circumstances will you care more also for data output failures?

When we have a user that describes the reproducible circumstances of their failed usage of the software.

elfring commented 1 year ago

When we have a user that describes the reproducible circumstances of their failed usage of the software.

:thought_balloon: Would you like to test the discussed software components also with a device like “/dev/full”?


How do you think about to improve static source code analysis also for your software? :thinking:

kusalananda commented 1 year ago

When we have a user that describes the reproducible circumstances of their failed usage of the software.

💭 Would you like to test the discussed software components also with a device like “/dev/full”?

A full disk is an external failure condition that the software does not have to recover gracefully from, or even detect specifically. Yes, it would be nice to have it do that, but, and this may come as a surprise to you, we don't have the resources to audit the code for these conditions.

How do you think about to improve static source code analysis also for your software? 🤔

Will my answer to this question resolve this issue?

elfring commented 1 year ago

…, we don't have the resources to audit the code for these conditions.

:crystal_ball: I hope that corresponding development interests can eventually grow.