Github user cloud-fan commented on a diff in the pull request:
https://github.com/apache/spark/pull/19222#discussion_r179485835
--- Diff:
common/unsafe/src/main/java/org/apache/spark/unsafe/memory/MemoryBlock.java ---
@@ -183,15 +184,13 @@ protected void checkSubBlockRange(long offset, long
size) {
public static final void copyMemory(
MemoryBlock src, long srcOffset, MemoryBlock dst, long dstOffset,
long length) {
- assert(length <= (src.length - src.getBaseOffset()) &&
- length <= (dst.length - dst.getBaseOffset()));
+ assert(length <= src.length && length <= dst.length);
Platform.copyMemory(src.getBaseObject(), src.getBaseOffset() +
srcOffset,
--- End diff --
so `srcOffset` is relative, which means we should make sure
`src.getBaseOffset() + srcOffset + length < src.length`
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]