Uploaded image for project: 'Indy Node'
  1. Indy Node
  2. INDY-292

Validation works incorrectly with batching

    XMLWordPrintable

Details

    • Bug
    • Status: Complete
    • High
    • Resolution: Done
    • None
    • None
    • None
    • Build Info:
      sovrin-node version: 0.3.140
      OS/Platform: Ubuntu 16.04.2 LTS

    • 10, 11

    Description

      Overview:
      Incorrect behavior occurs after sending lots of invalid NYMs at once. In this case invalid NYMs mean multiple sending of send NYM with the same dest and different verkeys.
      Note: load_test.py was modified for sending lots of invalid NYMs: row 176 signer.identifier was changed to constant identifier. Constant identifier should be changed before each running of the script. Here is this version of load_test script: load_test_inv.py

      Case 1:
      Behavior is differeSending invalid NYMs one by one.
      Steps to Reproduce:
      1. python3 load_test.py --clients-list load_test_clients.list --timeout 15 -t NYM -c 1 -r 14
      => The last output of script:

      ================================
      Test time: 140.95470929145813
      Average latency: 10.066737873213631
      Throughput: 0.0
      Error rate: 0.09932268365047384
      Succeeded: 1
      Failed: 13
      ================================

      It works as expected. Succeeded transaction added unique NYM, the rest NYMs were not added because creator of NYM can't update verkey.
      2. Change identifier value in the script to unique one.
      3. python3 load_test.py --clients-list load_test_clients.list --timeout 15 -t NYM -c 1 -r 14 --at-once
      => The last output of script:

      ================================
      Test time: 1.0311000347137451
      Average latency: 1.0199457577296667
      Throughput: 13.577732061551808
      Error rate: 0.0
      Succeeded: 14
      Failed: 0
      ================================

      Actual Results:
      All invalid transactions are succeeded when the script was run with --at-once key.

      Expected Results:
      Only the first transaction should be succeeded, the rest ones should not be succeeded.

      Case 2:
      Cluster is crashed after sending of 1000 invalid transactions at once (independently on turned on or turned off view changes).
      1. python3 load_test.py --clients-list load_test_clients.list --timeout 15 -t NYM -c 1 -r 1000 --at-once
      => the last output of script:

      ================================
      Test time: 9160.375793457031
      Average latency: 4133.603355242252
      Throughput: 0.010807416882472507
      Error rate: 0.09835841021320937
      Succeeded: 99
      Failed: 901
      ================================

      Actual Results:
      On 103th transaction Node1C and Node2C appeared in both ackNodes and nackNodes columns of pref_results spreadsheet: perf_results_1_1000_1497994390.csv
      The rest transactions were failed. After completion of the test cluster does not send NYMs.

      Expected Results:
      Only the first transaction should be succeeded, the rest ones should not be succeeded. Cluster should not crash.

      Additional Information:
      Running of load script with following parameters (500 transactions instead of 1000):

      python3 load_test.py --clients-list load_test_clients.list --timeout 15 -t NYM -c 1 -r 500 --at-once

      didn't break the cluster. For 500 transactions behavior is the same as for 14 transactions.

      pref_results for 500 transactions: perf_results_1_500_1497994295.csv
      Nodes logs: logs.tar.gz

      Attachments

        1. load_test_inv.py
          15 kB
        2. load_test_inv.py
          15 kB
        3. logs.tar.gz
          4.39 MB
        4. Node1.log
          8.20 MB
        5. Node2.log
          8.14 MB
        6. Node3.log
          8.21 MB
        7. Node4.log
          8.28 MB
        8. perf_results_1_1000_1497994390.csv
          228 kB
        9. perf_results_1_1000_1500387883.csv
          161 kB
        10. perf_results_1_14_1500387141.csv
          2 kB
        11. perf_results_1_14_1500387826.csv
          3 kB
        12. perf_results_1_500_1497994295.csv
          129 kB

        Issue Links

          Activity

            People

              danielhardman Daniel Hardman
              ozheregelya Olga Zheregelya
              Douglas Wightman, Lovesh Harchandani, Olga Zheregelya
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: