Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: add security bvt #20345

Closed
wants to merge 198 commits into from

Conversation

Songxx-7
Copy link
Contributor

@Songxx-7 Songxx-7 commented Nov 25, 2024

User description

What type of PR is this?

  • API-change
  • BUG
  • Improvement
  • Documentation
  • Feature
  • Test and CI
  • Code Refactoring

Which issue(s) this PR fixes:

issue #
https://github.com/matrixorigin/MO-Cloud/issues/4247
https://github.com/matrixorigin/MO-Cloud/issues/4248

What this PR does / why we need it:

test: add security bvt


PR Type

Tests, Enhancement


Description

  • Added new test cases for merging, checkpointing, transaction operations, and rollback scenarios.
  • Enhanced backExec with execution statistics tracking.
  • Added new entry types Entry_DataObject and Entry_TombstoneObject to protocol buffer definitions.
  • Introduced ResumeInvalidCN method and associated types in protocol buffers.
  • Added a state check for TNStore before service addition.
  • Updated SQL utility functions and removed unused imports.
  • Renamed function and updated tests in tableReader.

Changes walkthrough 📝

Relevant files
Enhancement
5 files
api.pb.go
Add new entry types to protocol buffer definitions.           

pkg/pb/api/api.pb.go

  • Added new entry types Entry_DataObject and Entry_TombstoneObject.
  • Updated the Entry_EntryType_name and Entry_EntryType_value maps to
    include new entry types.
  • Updated the gzipped FileDescriptorProto byte array to reflect changes.

  • +174/-166
    back_exec.go
    Enhance backExec with execution statistics tracking.         

    pkg/frontend/back_exec.go

  • Introduced statsArray to backExec for tracking execution statistics.
  • Added methods to initialize, reset, and retrieve execution statistics.
  • Modified Exec and ExecRestore methods to utilize statsArray.
  • Refactored session initialization and transaction handling logic.
  • +150/-63
    lock.pb.go
    Add support for ResumeInvalidCN method and types                 

    pkg/pb/lock/lock.pb.go

  • Added a new method ResumeInvalidCN with associated constants and
    mappings.
  • Introduced ResumeInvalidCNRequest and ResumeInvalidCNResponse types
    with their methods.
  • Updated the Request and Response types to include ResumeInvalidCN.
  • Implemented serialization and deserialization methods for the new
    types.
  • +552/-124
    txn.pb.go
    Added `Flag` field to `CNTxnSnapshot` struct and updated methods.

    pkg/pb/txn/txn.pb.go

  • Added a new field Flag to the CNTxnSnapshot struct.
  • Implemented a getter method GetFlag for the Flag field.
  • Updated the MarshalToSizedBuffer, ProtoSize, and Unmarshal methods to
    handle the Flag field.
  • +131/-96
    cluster.go
    Added state check for `TNStore` before service addition. 

    pkg/clusterservice/cluster.go

  • Added a condition to check TNStore state before adding services.
  • Ensured only TNStores in NormalState are processed.
  • +6/-4     
    Tests
    3 files
    db_test.go
    Enhance and add tests for merging and checkpointing           

    pkg/vm/engine/tae/db/test/db_test.go

  • Added new test cases: TestDeleteAndMerge, TestMergeAndTransfer,
    TestS3TransferInMerge, and TestDedup5.
  • Modified existing tests to use ForceGlobalCheckpoint instead of
    GlobalCheckpoint.
  • Introduced defaultGlobalCheckpointTimeout constant.
  • Adjusted test logic to handle merging and checkpointing scenarios.
  • +217/-27
    workspace_test.go
    Added tests for transaction operations and rollback scenarios.

    pkg/vm/engine/test/workspace_test.go

  • Added multiple test functions for basic insert/delete operations.
  • Included tests for multi-transaction scenarios and rollback
    operations.
  • Utilized mock objects and batch operations for testing.
  • +1330/-0
    reader_test.go
    Renamed function and updated tests in `tableReader`.         

    pkg/cdc/reader_test.go

  • Renamed restartFunc to resetWatermarkFunc in tableReader.
  • Updated test cases to reflect the function name change.
  • Added WatermarkUpdater initialization in tests.
  • +31/-82 
    Miscellaneous
    1 files
    util.go
    Updated SQL utility functions and removed unused import. 

    pkg/sql/compile/util.go

  • Removed unused import for types.
  • Added a new SQL format string dropTableBeforeDropDatabase.
  • +4/-122 
    Additional files (token-limit)
    101 files
    mysql_sql.go
    ...                                                                                                           

    pkg/sql/parsers/dialect/mysql/mysql_sql.go

    ...

    +9485/-9458
    pipeline.pb.go
    ...                                                                                                           

    pkg/pb/pipeline/pipeline.pb.go

    ...

    +2316/-781
    query.pb.go
    ...                                                                                                           

    pkg/pb/query/query.pb.go

    ...

    +1819/-302
    vector_test.go
    ...                                                                                                           

    pkg/container/vector/vector_test.go

    ...

    +302/-371
    bind_insert.go
    ...                                                                                                           

    pkg/sql/plan/bind_insert.go

    ...

    +1154/-0
    eval_expr_util.go
    ...                                                                                                           

    pkg/sql/util/eval_expr_util.go

    ...

    +164/-350
    query_builder.go
    ...                                                                                                           

    pkg/sql/plan/query_builder.go

    ...

    +400/-121
    s3writer.go
    ...                                                                                                           

    pkg/sql/colexec/multi_update/s3writer.go

    ...

    +483/-136
    compile.go
    ...                                                                                                           

    pkg/sql/compile/compile.go

    ...

    +176/-67
    cdc.go
    ...                                                                                                           

    pkg/frontend/cdc.go

    ...

    +301/-236
    authenticate.go
    ...                                                                                                           

    pkg/frontend/authenticate.go

    ...

    +233/-79
    sinker.go
    ...                                                                                                           

    pkg/cdc/sinker.go

    ...

    +247/-110
    func_mo_explain_phy_test.go
    ...                                                                                                           

    pkg/sql/plan/function/func_mo_explain_phy_test.go

    ...

    +28/-27 
    pitr_test.go
    ...                                                                                                           

    pkg/frontend/pitr_test.go

    ...

    +400/-27
    external.go
    ...                                                                                                           

    pkg/sql/colexec/external/external.go

    ...

    +53/-76 
    session.go
    ...                                                                                                           

    pkg/frontend/session.go

    ...

    +423/-86
    deepcopy.go
    ...                                                                                                           

    pkg/sql/plan/deepcopy.go

    ...

    +91/-155
    s3_fs_test.go
    ...                                                                                                           

    pkg/fileservice/s3_fs_test.go

    ...

    +46/-412
    baseTemplate.go
    ...                                                                                                           

    pkg/sql/plan/function/baseTemplate.go

    ...

    +80/-48 
    sinker_test.go
    ...                                                                                                           

    pkg/cdc/sinker_test.go

    ...

    +102/-63
    bind_update.go
    ...                                                                                                           

    pkg/sql/plan/bind_update.go

    ...

    +536/-0 
    password_management.go
    ...                                                                                                           

    pkg/frontend/password_management.go

    ...

    +436/-34
    publication_subscription.go
    ...                                                                                                           

    pkg/frontend/publication_subscription.go

    ...

    +130/-78
    join.go
    ...                                                                                                           

    pkg/sql/colexec/dedupjoin/join.go

    ...

    +512/-0 
    operator.go
    ...                                                                                                           

    pkg/sql/compile/operator.go

    ...

    +193/-27
    txn.go
    ...                                                                                                           

    pkg/vm/engine/disttae/txn.go

    ...

    +127/-58
    db.go
    ...                                                                                                           

    pkg/vm/engine/disttae/db.go

    ...

    +224/-101
    snapshot.go
    ...                                                                                                           

    pkg/frontend/snapshot.go

    ...

    +102/-69
    apply_indices.go
    ...                                                                                                           

    pkg/sql/plan/apply_indices.go

    ...

    +171/-164
    opt_misc.go
    ...                                                                                                           

    pkg/sql/plan/opt_misc.go

    ...

    +279/-3 
    build_constraint_util.go
    ...                                                                                                           

    pkg/sql/plan/build_constraint_util.go

    ...

    +174/-70
    local_disttae_datasource.go
    ...                                                                                                           

    pkg/vm/engine/disttae/local_disttae_datasource.go

    ...

    +102/-94
    mysql_cmd_executor.go
    ...                                                                                                           

    pkg/frontend/mysql_cmd_executor.go

    ...

    +85/-43 
    update_test.go
    ...                                                                                                           

    pkg/sql/colexec/multi_update/update_test.go

    ...

    +36/-120
    rows_iter.go
    ...                                                                                                           

    pkg/vm/engine/disttae/logtailreplay/rows_iter.go

    ...

    +261/-124
    upgrade_test.go
    ...                                                                                                           

    pkg/bootstrap/versions/v2_0_1/upgrade_test.go

    ...

    +337/-0 
    cdc_test.go
    ...                                                                                                           

    pkg/frontend/cdc_test.go

    ...

    +53/-25 
    s3writer_util.go
    ...                                                                                                           

    pkg/sql/colexec/multi_update/s3writer_util.go

    ...

    +137/-97
    mock_trace_test.go
    ...                                                                                                           

    pkg/util/export/mock_trace_test.go

    ...

    +371/-0 
    bind_delete.go
    ...                                                                                                           

    pkg/sql/plan/bind_delete.go

    ...

    +379/-0 
    vector.go
    ...                                                                                                           

    pkg/container/vector/vector.go

    ...

    +202/-48
    ddl.go
    ...                                                                                                           

    pkg/sql/compile/ddl.go

    ...

    +136/-31
    txn_test.go
    ...                                                                                                           

    pkg/frontend/txn_test.go

    ...

    +240/-16
    fulltext.go
    ...                                                                                                           

    pkg/sql/colexec/table_function/fulltext.go

    ...

    +208/-53
    password_management_test.go
    ...                                                                                                           

    pkg/frontend/password_management_test.go

    ...

    +378/-0 
    multi_update.go
    ...                                                                                                           

    pkg/sql/colexec/multi_update/multi_update.go

    ...

    +199/-52
    build_insert.go
    ...                                                                                                           

    pkg/sql/plan/build_insert.go

    ...

    +17/-184
    insert.go
    ...                                                                                                           

    pkg/sql/colexec/multi_update/insert.go

    ...

    +112/-38
    pitr.go
    ...                                                                                                           

    pkg/frontend/pitr.go

    ...

    +47/-29 
    mock_batch_pipe_test.go
    ...                                                                                                           

    pkg/util/export/mock_batch_pipe_test.go

    ...

    +289/-0 
    strhashmap.go
    ...                                                                                                           

    pkg/common/hashmap/strhashmap.go

    ...

    +156/-49
    remoterun.go
    ...                                                                                                           

    pkg/sql/compile/remoterun.go

    ...

    +115/-7 
    dml_context.go
    ...                                                                                                           

    pkg/sql/plan/dml_context.go

    ...

    +276/-0 
    join_test.go
    ...                                                                                                           

    pkg/sql/colexec/dedupjoin/join_test.go

    ...

    +291/-0 
    hashmap_util.go
    ...                                                                                                           

    pkg/sql/colexec/hashmap_util/hashmap_util.go

    ...

    +91/-56 
    build_ddl.go
    ...                                                                                                           

    pkg/sql/plan/build_ddl.go

    ...

    +109/-8 
    shuffle.go
    ...                                                                                                           

    pkg/sql/plan/shuffle.go

    ...

    +60/-33 
    stats.go
    ...                                                                                                           

    pkg/sql/plan/stats.go

    ...

    +59/-30 
    value_scan.go
    ...                                                                                                           

    pkg/sql/colexec/value_scan/value_scan.go

    ...

    +105/-99
    make.go
    ...                                                                                                           

    pkg/sql/plan/make.go

    ...

    +223/-0 
    s3_fs.go
    ...                                                                                                           

    pkg/fileservice/s3_fs.go

    ...

    +37/-126
    operator.go
    ...                                                                                                           

    pkg/txn/client/operator.go

    ...

    +85/-25 
    publication_subscription_test.go
    ...                                                                                                           

    pkg/frontend/publication_subscription_test.go

    ...

    +36/-25 
    waiter_queue_test.go
    ...                                                                                                           

    pkg/lockservice/waiter_queue_test.go

    ...

    +47/-47 
    tuple.go
    ...                                                                                                           

    pkg/container/types/tuple.go

    ...

    +221/-0 
    constant_fold.go
    ...                                                                                                           

    pkg/sql/plan/rule/constant_fold.go

    ...

    +197/-0 
    disk_cache.go
    ...                                                                                                           

    pkg/fileservice/disk_cache.go

    ...

    +73/-33 
    fifo.go
    ...                                                                                                           

    pkg/fileservice/fifocache/fifo.go

    ...

    +51/-39 
    grafana_dashboard_fs.go
    ...                                                                                                           

    pkg/util/metric/v2/dashboard/grafana_dashboard_fs.go

    ...

    +119/-21
    reader.go
    ...                                                                                                           

    pkg/cdc/reader.go

    ...

    +42/-25 
    issue_test.go
    ...                                                                                                           

    pkg/tests/issues/issue_test.go

    ...

    +276/-0 
    fulltext_tokenize.go
    ...                                                                                                           

    pkg/sql/colexec/table_function/fulltext_tokenize.go

    ...

    +82/-30 
    aws_sdk_v2.go
    ...                                                                                                           

    pkg/fileservice/aws_sdk_v2.go

    ...

    +102/-28
    injects.go
    ...                                                                                                           

    pkg/objectio/injects.go

    ...

    +210/-23
    build.go
    ...                                                                                                           

    pkg/sql/plan/build.go

    ...

    +150/-10
    insert_test.go
    ...                                                                                                           

    pkg/sql/colexec/multi_update/insert_test.go

    ...

    +88/-25 
    scope.go
    ...                                                                                                           

    pkg/sql/compile/scope.go

    ...

    +69/-26 
    txn_table.go
    ...                                                                                                           

    pkg/vm/engine/disttae/txn_table.go

    ...

    +70/-20 
    bind_load.go
    ...                                                                                                           

    pkg/sql/plan/bind_load.go

    ...

    +198/-0 
    mock_aggr_test.go
    ...                                                                                                           

    pkg/util/export/mock_aggr_test.go

    ...

    +219/-0 
    lock_table_allocator.go
    ...                                                                                                           

    pkg/lockservice/lock_table_allocator.go

    ...

    +46/-19 
    engine_mock.go
    ...                                                                                                           

    pkg/frontend/test/engine_mock.go

    ...

    +89/-8   
    service_remote.go
    ...                                                                                                           

    pkg/lockservice/service_remote.go

    ...

    +22/-22 
    session_test.go
    ...                                                                                                           

    pkg/frontend/session_test.go

    ...

    +179/-0 
    logtail_consumer.go
    ...                                                                                                           

    pkg/vm/engine/disttae/logtail_consumer.go

    ...

    +83/-24 
    cron_task.go
    ...                                                                                                           

    pkg/util/metric/mometric/cron_task.go

    ...

    +151/-3 
    base.go
    ...                                                                                                           

    pkg/vm/engine/tae/tables/base.go

    ...

    +57/-12 
    partition_state.go
    ...                                                                                                           

    pkg/vm/engine/disttae/logtailreplay/partition_state.go

    ...

    +40/-19 
    types.go
    ...                                                                                                           

    pkg/frontend/types.go

    ...

    +50/-18 
    lock_op.go
    ...                                                                                                           

    pkg/sql/colexec/lockop/lock_op.go

    ...

    +83/-5   
    functionTools.go
    ...                                                                                                           

    pkg/container/vector/functionTools.go

    ...

    +58/-19 
    pubsub.go
    ...                                                                                                           

    pkg/bootstrap/versions/v2_0_0/pubsub.go

    ...

    +7/-81   
    variables.go
    ...                                                                                                           

    pkg/frontend/variables.go

    ...

    +75/-27 
    join.go
    ...                                                                                                           

    pkg/sql/colexec/right/join.go

    ...

    +35/-30 
    delete_test.go
    ...                                                                                                           

    pkg/sql/colexec/multi_update/delete_test.go

    ...

    +32/-28 
    server_query.go
    ...                                                                                                           

    pkg/cnservice/server_query.go

    ...

    +54/-5   
    checkpoint.go
    ...                                                                                                           

    pkg/vm/engine/tae/db/gc/v3/checkpoint.go

    ...

    +8/-86   
    snapshot.go
    ...                                                                                                           

    pkg/vm/engine/tae/logtail/snapshot.go

    ...

    +43/-19 
    simple.go
    ...                                                                                                           

    pkg/monlp/tokenizer/simple.go

    ...

    +216/-0 
    types.go
    ...                                                                                                           

    pkg/sql/colexec/dedupjoin/types.go

    ...

    +222/-0 
    Additional 593 files not shown
    ...                                                                                                           

    Additional 593 files not shown

    ...

    Additional files (token-limit)extra_file_yaml =
    1 files
    buffer_pipe_test.go
    ...                                                                                                           

    pkg/util/trace/impl/motrace/buffer_pipe_test.go

    ...

    +63/-9   

    💡 PR-Agent usage: Comment /help "your question" on any pull request to receive relevant information

    m-schen and others added 30 commits October 30, 2024 02:35
    …built-in function. (matrixorigin#19672)
    
    try to reuse the FunctionParameterWrapper.
    fix a spool bug will write a panic log incorrelty.
    
    Approved by: @XuPeng-SH, @sukki37, @aunjgr
    …ed (matrixorigin#19682)
    
    do not unsubscribe table before it finished waited, otherwise,
    it will never stop waiting for the table's first logtail as it is subscribed.
    
    Approved by: @triump2020, @sukki37
    - lower log print threshold
    - check rowid of insert batch
    
    Approved by: @LeftHandCold, @XuPeng-SH, @sukki37
    - remove debug log
    - fix batch split flow in filterInMemUnCommittedInserts
    
    Approved by: @XuPeng-SH, @m-schen, @aunjgr, @sukki37
    cherry-pick
    execute sql 执行的时候, checkTableDefChange里面调用HasNewerVersion判断
    
    Approved by: @badboynt1, @aressu1985, @ouyuanning, @XuPeng-SH, @daviszhen, @aunjgr, @sukki37
    …ator scan (matrixorigin#19677)
    
    1. reduce the comparison of Exact, Prefix, In, Between.
    2. TPCC 100w*1000t performance 10%+
    
    Approved by: @triump2020, @XuPeng-SH, @sukki37
    Operator analyzer adds CounterSet member for S3 resource statistics, reducing memory allocation
    
    Approved by: @XuPeng-SH, @m-schen, @sukki37
    …2.0 (matrixorigin#19749)
    
    abort all active txn on invalid service and make new txn can work
    
    Approved by: @XuPeng-SH, @sukki37
    Fix test global checkpoint5 2.0
    
    Approved by: @XuPeng-SH, @sukki37
    Fix lockservice dead lock with txn . Use separate goroutines handle getActiveTxns
    
    Approved by: @iamlinjunhong, @sukki37
    fix dedup and add debug log
    
    Approved by: @XuPeng-SH, @sukki37
    …matrixorigin#19780)
    
    return retry error if snapshot ts is smaller than ts of catalog.
    before retry, update snapshot ts to catalog start ts.
    
    Approved by: @XuPeng-SH, @sukki37
    ignore munmap error in mpool deallocation.
    
    Approved by: @m-schen, @sukki37
    fix group concat without data
    
    Approved by: @sukki37, @m-schen, @heni02
    set sink mysql timeout to 10min
    
    Approved by: @daviszhen, @sukki37
    After judging that the WAL has no Pendding LSN, the merge is executed again, so an exception is thrown.
    The merge needs to be closed in this case.
    
    Approved by: @XuPeng-SH, @sukki37
    fix index table missing table_kind identifier
    
    Approved by: @aunjgr, @heni02, @sukki37
    After physical recovery, the mo panic is started.
    Fix the bug of missing files in physical backup.
    Backup support snapshot
    
    Approved by: @daviszhen, @zhangxu19830126, @XuPeng-SH, @sukki37
    Improve cdc send sql performance
    
    Approved by: @daviszhen, @sukki37
    fetch the target column from corrent resultset
    
    Approved by: @aptend, @sukki37
    fix txn status invalid if commit failed or commit a readonly txn
    
    Approved by: @iamlinjunhong, @sukki37
    Copy link

    PR-Agent was enabled for this repository. To continue using it, please link your git user with your CodiumAI identity here.

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    🎫 Ticket compliance analysis ❌

    4247 - Not compliant

    Compliant requirements:

    None

    Non-compliant requirements:

    • Support SELECT ... MINUS SELECT ... syntax
    • Handle MINUS operations between SELECT statements with ORDER BY and LIMIT clauses

    4248 - Not compliant

    Compliant requirements:

    None

    Non-compliant requirements:

    ⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
    🧪 PR contains tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Code Refactoring
    The tableReader struct field was renamed from restartFunc to resetWatermarkFunc. Need to verify this refactoring maintains the same functionality.

    API Change
    New ResumeInvalidCN RPC method and message types were added. Need to verify the API design and implementation.

    Copy link

    PR-Agent was enabled for this repository. To continue using it, please link your git user with your CodiumAI identity here.

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Score
    General
    Ensure token values are sequential and properly ordered to maintain parser consistency

    The token values should be defined in sequence without gaps to avoid potential
    parsing issues. Add a new token 'DEDUP' with value 57422 and shift all subsequent
    token values by 1 to maintain continuity.

    pkg/sql/parsers/dialect/mysql/mysql_sql.go [97-99]

     const APPLY = 57421
    -+const DEDUP = 57422
    -+const LOWER_THAN_ON = 57423
    +const DEDUP = 57422
    +const LOWER_THAN_ON = 57423
    • Apply this suggestion
    Suggestion importance[1-10]: 8

    Why: The suggestion correctly identifies the need to maintain sequential token values, which is crucial for parser reliability and preventing potential conflicts. The addition of DEDUP token is properly integrated into the sequence.

    8
    Security
    Add validation to ensure required fault injection parameters are provided

    Add validation for Name, Freq and Action fields to ensure they are not empty when
    fault injection is requested

    pkg/pb/query/query.pb.go [4406-4412]

     type FaultInjectionRequest struct {
    -    Name   string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
    -    Freq   string `protobuf:"bytes,2,opt,name=Freq,proto3" json:"Freq,omitempty"`
    -    Action string `protobuf:"bytes,3,opt,name=Action,proto3" json:"Action,omitempty"`
    +    Name   string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty" validate:"required"`
    +    Freq   string `protobuf:"bytes,2,opt,name=Freq,proto3" json:"Freq,omitempty" validate:"required"`
    +    Action string `protobuf:"bytes,3,opt,name=Action,proto3" json:"Action,omitempty" validate:"required"`
         Iarg   int64  `protobuf:"varint,4,opt,name=Iarg,proto3" json:"Iarg,omitempty"`
         Sarg   string `protobuf:"bytes,5,opt,name=Sarg,proto3" json:"Sarg,omitempty"`
     }
    • Apply this suggestion
    Suggestion importance[1-10]: 8

    Why: The suggestion adds critical validation for fault injection parameters, which is important for security and proper functionality of the fault injection system. Missing parameters could lead to undefined behavior.

    8
    Possible issue
    Add input validation to ensure GC percent value is within valid range

    Add validation for the Percent field to ensure it's within valid range (-1 to 100)
    as per Go's debug.SetGCPercent() requirements

    pkg/pb/query/query.pb.go [4315-4317]

     type GoGCPercentRequest struct {
    -    Percent int32 `protobuf:"varint,1,opt,name=Percent,proto3" json:"Percent,omitempty"`
    +    Percent int32 `protobuf:"varint,1,opt,name=Percent,proto3" json:"Percent,omitempty" validate:"gte=-1,lte=100"`
     }
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    Why: The suggestion adds important validation for the GC percent value to prevent invalid inputs that could affect garbage collection behavior. This is a meaningful safety improvement.

    7
    Add validation to prevent negative cache size values

    Add validation for CacheSize to prevent negative values which could cause memory
    allocation issues

    pkg/pb/query/query.pb.go [4227-4229]

     type MetadataCacheRequest struct {
    -    CacheSize int64 `protobuf:"varint,1,opt,name=CacheSize,proto3" json:"CacheSize,omitempty"`
    +    CacheSize int64 `protobuf:"varint,1,opt,name=CacheSize,proto3" json:"CacheSize,omitempty" validate:"gte=0"`
     }
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    Why: Adding validation to prevent negative cache sizes is important to avoid potential memory allocation issues and system instability. This is a valuable safety check.

    7

    💡 Need additional feedback ? start a PR chat

    @Songxx-7 Songxx-7 closed this Nov 25, 2024
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    kind/test-ci Review effort [1-5]: 3 size/XL Denotes a PR that changes [1000, 1999] lines
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.