Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Synchronization Fail with SQLiteBlobTooBigException

Đang mở
#3,148 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@utafrali đang làm issue này rồi.

Từ ngày 17/4/2026.

  • #3149 của @utafrali — đang mở

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
android, java, kotlin, sqlite
Lĩnh vực
database, mobile

Hướng nghiên cứu

Bắt đầu với NotesServerSyncTask.pullRemoteChanges và NotesRepository.addNote, lần theo lệnh gọi NoteDao.getNoteById bị lỗi được hiển thị trong stack trace. Tái hiện quá trình đồng bộ hóa với một tập hợp ghi chú lớn và điều tra SQLiteBlobTooBigException tại lần tra cứu đó. Công việc được xem là hoàn tất khi quá trình đồng bộ hóa hoàn thành mà ứng dụng không bị crash trong khi xử lý các ghi chú.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

0. Needs triage bug
This issue respects the following points:
Describe the bug

Synchronisation fail on the Notes app. There are around 4.5K notes. The web app works fine. The mobile app is synchronising slowly and then crash. (Crashed at 30 notes)

Expected behavior

Ideally I would expect to synch with all the notes...

Notes Android version

33.0.0

Notes server version

4.13.1

Nextcloud Android version

33.0.1

Nextcloud version

32.0.6

Device

Realme RMX3943

Android Version

13

App Store
  • Google Play Store
  • F-Droid
  • Huawei App Gallery
Stacktrace
App Version: 33.0.0
App Version Code: 330000090
App Flavor: play

Files App Version Code: 330000190 (PROD)

---

OS Version: 5.15.167-android13-8-o-gfc2b713b973e(V.R4T2.20581b5_4ea-14426c)
OS API Level: 35
Device: RE6092
Manufacturer: realme
Model (and Product): RMX3943 (RMX3943EEA)

---

android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1
	at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native Method)
	at android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:1051)
	at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:862)
	at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
	at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:145)
	at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:132)
	at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:252)
	at android.database.AbstractCursor.moveToNext(AbstractCursor.java:301)
	at androidx.sqlite.driver.SupportSQLiteStatement$RowSQLiteStatement.step(SupportSQLiteStatement.android.kt:405)
	at it.niedermann.owncloud.notes.persistence.dao.NoteDao_Impl.lambda$getNoteById$3(NoteDao_Impl.java:324)
	at it.niedermann.owncloud.notes.persistence.dao.NoteDao_Impl$$ExternalSyntheticLambda37.invoke(D8$$SyntheticClass:0)
	at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1$invokeSuspend$$inlined$internalPerform$1.invokeSuspend(DBUtil.kt:173)
	at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1$invokeSuspend$$inlined$internalPerform$1.invoke(Unknown Source:8)
	at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1$invokeSuspend$$inlined$internalPerform$1.invoke(Unknown Source:4)
	at androidx.room.coroutines.PassthroughConnectionPool$useConnection$2.invokeSuspend(PassthroughConnectionPool.kt:59)
	at androidx.room.coroutines.PassthroughConnectionPool$useConnection$2.invoke(Unknown Source:8)
	at androidx.room.coroutines.PassthroughConnectionPool$useConnection$2.invoke(Unknown Source:4)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:42)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:164)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
	at androidx.room.coroutines.PassthroughConnectionPool.useConnection(PassthroughConnectionPool.kt:59)
	at androidx.room.RoomConnectionManager.useConnection(RoomConnectionManager.android.kt:138)
	at androidx.room.RoomDatabase.useConnection(RoomDatabase.android.kt:619)
	at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1.invokeSuspend(DBUtil.android.kt:260)
	at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1.invoke(Unknown Source:8)
	at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1.invoke(Unknown Source:4)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:42)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:156)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
	at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invokeSuspend(DBUtil.android.kt:72)
	at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invoke(Unknown Source:8)
	at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invoke(Unknown Source:4)
	at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invokeSuspend(RunBlockingUninterruptible.android.kt:52)
	at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invoke(Unknown Source:8)
	at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invoke(Unknown Source:4)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:20)
	at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:360)
	at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:124)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:52)
	at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1)
	at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1.invokeSuspend(RunBlockingUninterruptible.android.kt:51)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:47)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
	at androidx.room.coroutines.RunBlockingUninterruptible_androidKt.runBlockingUninterruptible(RunBlockingUninterruptible.android.kt:45)
	at androidx.room.util.DBUtil__DBUtil_androidKt.performBlocking(DBUtil.android.kt:71)
	at androidx.room.util.DBUtil.performBlocking(Unknown Source:1)
	at it.niedermann.owncloud.notes.persistence.dao.NoteDao_Impl.getNoteById(NoteDao_Impl.java:304)
	at it.niedermann.owncloud.notes.persistence.NotesRepository.addNote(NotesRepository.java:524)
	at it.niedermann.owncloud.notes.persistence.NotesServerSyncTask.pullRemoteChanges(NotesServerSyncTask.java:249)
	at it.niedermann.owncloud.notes.persistence.NotesServerSyncTask.run(NotesServerSyncTask.java:101)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:520)
	at java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1154)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:652)
	at java.lang.Thread.run(Thread.java:1564)

Ngôn ngữ chính
Java
Star
1.1k
Fork
170
Merge trung bình
2 giờ 33 phút
Pull request đã merge (30 ngày)
24

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của nextcloud/notes-android

Tất cả issue của nextcloud/notes-android

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.