[Swan-dev] confread diagnostics [was: Re: [Swan-commit] Changes to ref refs/heads/master]

D. Hugh Redelmeier hugh at mimosa.com
Thu Aug 2 15:29:47 UTC 2018


| From: Andrew Cagney <andrew.cagney at gmail.com>

| When I run ikev2-03-basic-rawrsa-ckaid with f28c65e2c5a1325621725
| checked out (and master),

The last time I ran the tests, that test's directory existed but it
wasn't in TESTLIST.  So I guess I've never run it.

| I get:
| 
|   /testing/guestbin/swan-prep
|   *** Error in `PATH/libexec/ipsec/addconn': malloc(): memory
| corruption: 0x00007f15caa9ff20 ***
|   *** Error in `PATH/libexec/ipsec/addconn': malloc(): memory
| corruption: 0x00007f15caa9ff20 ***
|   <<timeout>>

That's not supposed to happen!

I'll look into it when I get time.

| but with the previous commit I get:
| 
|   /testing/guestbin/swan-prep
|   west #
|    ipsec start
|   cannot find conn 'west-leftckaid' needed by conn 'westnet-eastnet-ikev2-ckaid'
| 
| (which I suspect is a hint to the error, yes I need to update my test).

Please don't update the test, or at least don't update it without
cloning it.  Every test that provokes a bug is precious.

| > | Just pass in a stack allocated lswlog
| 
| For instance:
| 
| LSWBUF(buf) {
|     if (!call function(buf)) {
|       buf contains the errors;
|     }
| }
| 
| however, if the intent is to really somehow keep this code isolated
| then I think a better solution is to pass in the logging function so
| errors can be emitted immediately.

I imagine so.  f28c65e2c5a1325621725 was a starting point:

- it isolated the code that improperly used the err_t abstraction

- it started to identify the places where a proper reporting mechanism
  needed to be used.

- (weakness) it just concatenated all the accumulated errors.  Each
  should be logged separately.

- (weakness) it didn't allow the caller to provide the environmentally
  appropriate logging function.

- (weakness) it didn't replace all the printf / sprintf calls.


More information about the Swan-dev mailing list