|Summary:||FreeBSD 12.0-BETA - bectl create NEWBE - multiple error messages instead of one|
|Component:||bin||Assignee:||Kyle Evans <kevans>|
|Severity:||Affects Only Me||CC:||dch, kevans, rob.fx907|
Description vermaden 2018-11-12 19:29:39 UTC
Currently: # bectl create ZFSBE boot environment name already taken boot environment name already taken boot environment name already taken boot environment name already taken failed to create bootenv ZFSBE # Can/should be: # bectl create ZFSBE boot environment ZFSBE already exists #
Comment 1 Rob 2018-11-14 19:26:14 UTC
Created attachment 199243 [details] only call set_error() when an error is first encountered. set_error() was previously being called multiple times for the same error. This patch calls set_error() only when the type of error is known first-hand. Once the error number is set, the error number is returned up the chain. While this patch is by no means a robust fix, it does start to address the core issue this bug originates from - which is inconsistent error handling within libbe. What I mean by inconsistency is that, some routines within libbe return an error number (without using set_error()) while other functions use set_error() and then return an error number. Hopefully this patch will be considered as a first-step to bringing consistent error handling within libbe. An error should be set once, as soon as its known, and the associated error number should be returned up the chain - eventually making it's way to an application program, presumably. The diff was taken from r340424 (HEAD), should it be against stable/12 branch? This is my first patch submission, so bear with me.
Comment 2 Kyle Evans 2019-03-19 18:53:44 UTC