ArrayIndexOutOfBoundsException in com.semmle.inmemory.pipeline.MetaPipelineInstance.wrapWithRaDump(MetaPipelineInstance.java:204)
- Ngôn ngữ chính
- CodeQL
- Star
- 10.1k
- Fork
- 2.1k
- Merge trung bình
- 2 ngày 15 giờ
- Pull request đã merge (30 ngày)
- 141
Mô tả
java.lang.ArrayIndexOutOfBoundsException: Index 228617 out of bounds for length 202748
The RA to evaluate was:
{2} r1 = SCAN `SsaInternalsCommon::isUse/5#651d70a4` OUTPUT In.2, In.4
return r1
(eventual cause: ArrayIndexOutOfBoundsException "Index 228617 out of bounds for length 202748")
at com.semmle.inmemory.pipeline.MetaPipelineInstance.wrapWithRaDump(MetaPipelineInstance.java:204)
at com.semmle.inmemory.pipeline.MetaPipelineInstance.exceptionCaught(MetaPipelineInstance.java:174)
at com.semmle.inmemory.scheduler.execution.ThreadableWork.handleAndLog(ThreadableWork.java:593)
at com.semmle.inmemory.scheduler.execution.ThreadableWork.doSomeWork(ThreadableWork.java:410)
at com.semmle.inmemory.scheduler.IntensionalLayer$IntensionalWork.evaluate(IntensionalLayer.java:124)
at com.semmle.inmemory.scheduler.SimpleLayerTask$SimpleLayerWork.doWork(SimpleLayerTask.java:69)
at com.semmle.inmemory.scheduler.execution.ThreadableWork.doSomeWork(ThreadableWork.java:396)
at com.semmle.inmemory.scheduler.execution.ExecutionScheduler.runnerMain(ExecutionScheduler.java:707)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 228617 out of bounds for length 202748
at com.semmle.inmemory.relations.IntArraySorter.bsearchRange(IntArraySorter.java:689)
at com.semmle.inmemory.relations.IntArraySorter.bsearch(IntArraySorter.java:683)
at com.semmle.inmemory.relations.IntArraySorter.growRun(IntArraySorter.java:445)
at com.semmle.inmemory.relations.IntArraySorter.updateStack(IntArraySorter.java:299)
at com.semmle.inmemory.relations.IntArraySorter.sortAndDeliverCompletePages(IntArraySorter.java:141)
at com.semmle.inmemory.relations.writers.IntArrayWriter.sortAndDeliverCompletePages(IntArrayWriter.java:277)
at com.semmle.inmemory.relations.writers.UnsortedRelationWriter.makeSpaceIfNeeded(UnsortedRelationWriter.java:133)
at com.semmle.inmemory.relations.writers.UnsortedRelationWriter$1.addBatch(UnsortedRelationWriter.java:115)
at com.semmle.inmemory.pipeline.RelationWritingStep$RelationWritingState.processBatch(RelationWritingStep.java:90)
at com.semmle.inmemory.pipeline.SimpleStep$SimpleState.deliverBatch(SimpleStep.java:146)
at com.semmle.inmemory.pipeline.SimpleStep$SimpleState.deliverOwnBatch(SimpleStep.java:130)
at com.semmle.inmemory.pipeline.ExpanderStep$ExpanderState.deliverMatchOutput(ExpanderStep.java:85)
at com.semmle.inmemory.pipeline.LiteralStep$LiteralState.deliverRelation(LiteralStep.java:76)
at com.semmle.inmemory.pipeline.LiteralStep.deliverRelation(LiteralStep.java:161)
at com.semmle.inmemory.pipeline.LiteralStep$1.headEndWork(LiteralStep.java:141)
at com.semmle.inmemory.pipeline.HeadEndDispatcher.headEndWork(HeadEndDispatcher.java:75)
at com.semmle.inmemory.pipeline.PipelineState.doSomeWork(PipelineState.java:88)
at com.semmle.inmemory.pipeline.PipelineInstance.doWork(PipelineInstance.java:78)
at com.semmle.inmemory.scheduler.execution.ThreadableWork.doSomeWork(ThreadableWork.java:396)
at com.semmle.inmemory.scheduler.execution.ChainingWork.doWork(ChainingWork.java:30)
at com.semmle.inmemory.scheduler.execution.ThreadableWork.doSomeWork(ThreadableWork.java:396)
... 7 more
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với MetaPipelineInstance.java ở các dòng 204 và 174, sau đó kiểm tra IntArraySorter.java quanh các dòng 689, 683, 445, 299 và 141. Tái hiện phép đánh giá RA đã được báo cáo cho SsaInternalsCommon::isUse/5#651d70a4 và theo dõi cách chỉ mục vượt quá độ dài của quan hệ. Hoàn thành khi phép đánh giá không còn phát sinh ArrayIndexOutOfBoundsException và có độ bao phủ cho trường hợp lỗi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100