XRPLF / clio

An XRP Ledger API Server
https://xrpl.org
ISC License
56 stars 48 forks source link

Fix deletion script #1357

Closed cindyyan317 closed 2 months ago

cindyyan317 commented 2 months ago

We could delete the data which we don't want to delete.

For example, if we execute go run main.go -i 5847959 -k clio 127.0.0.1 trying to delete the data after 5847959

cqlsh> select * from clio.successor where key=0x14d1b15992706d9b7f97926051c5101f277a53148ea17119ca3e5ee66287665e;

 key                                                                | seq     | next
--------------------------------------------------------------------+---------+--------------------------------------------------------------------
 0x14d1b15992706d9b7f97926051c5101f277a53148ea17119ca3e5ee66287665e | 5847959 | 0x14d1b1acb1237bdf47755743097a359d8f5e7e3e1b68991ac3bfe496f0090b39

Even 0x14d1b15992706d9b7f97926051c5101f277a53148ea17119ca3e5ee66287665e is created at 5847959, the deletion script still will delete it.

2024/04/12 14:16:57 Executing delete query: DELETE FROM successor WHERE key = ? AND seq = ? [blob=0xebab9529dc2e9cb28a85c8ec1e474ecb483ee62d12256b9e97add029e1b05bf5][seq=5851461]
2024/04/12 14:16:57 Executing delete query: DELETE FROM successor WHERE key = ? AND seq = ? [blob=0xebab9529dc2e9cb28a85c8ec1e474ecb483ee62d12256b9e97add029e1b05bf5][seq=5851564]
2024/04/12 14:16:57 Executing delete query: DELETE FROM successor WHERE key = ? AND seq = ? [blob=**0x14d1b15992706d9b7f97926051c5101f277a53148ea17119ca3e5ee66287665e**][seq=5853066]
2024/04/12 14:16:57 Executing delete query: DELETE FROM successor WHERE key = ? AND seq = ? [blob=**0x14d1b15992706d9b7f97926051c5101f277a53148ea17119ca3e5ee66287665e**][seq=5848284]
2024/04/12 14:16:57 Executing delete query: DELETE FROM successor WHERE key = ? AND seq = ? [blob=**0x14d1b15992706d9b7f97926051c5101f277a53148ea17119ca3e5ee66287665e**][seq=5851479]
2024/04/12 14:16:57 Executing delete query: DELETE FROM successor WHERE key = ? AND seq = ? [blob=**0x14d1b15992706d9b7f97926051c5101f277a53148ea17119ca3e5ee66287665e**][seq=5851396]
2024/04/12 14:16:57 Executing delete query: DELETE FROM successor WHERE key = ? AND seq = ? [blob=**0x14d1b15992706d9b7f97926051c5101f277a53148ea17119ca3e5ee66287665e**][seq=5849516]
2024/04/12 14:16:57 Executing delete query: DELETE FROM successor WHERE key = ? AND seq = ? [blob=**0x14d1b15992706d9b7f97926051c5101f277a53148ea17119ca3e5ee66287665e**][seq=5848434]
2024/04/12 14:16:57 Executing delete query: DELETE FROM successor WHERE key = ? AND seq = ? [blob=0xfbd48492d8b63acfc6ca02abcd0ea00103c8daa0d12cca32f1bd4e95ab339e6a][seq=5849928]

Because the slice has not done deep clone. All the Data in deleteInfo will eventually refer to the last item in partition.

Please refer to "reuse slice session" from: https://pkg.go.dev/github.com/gocql/gocql#hdr-Reusing_slices

codecov[bot] commented 2 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 64.44%. Comparing base (3fa1df9) to head (acb4b30). Report is 1 commits behind head on develop.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #1357 +/- ## =========================================== + Coverage 64.38% 64.44% +0.05% =========================================== Files 248 248 Lines 10544 10544 Branches 5839 5839 =========================================== + Hits 6789 6795 +6 + Misses 1920 1914 -6 Partials 1835 1835 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.