stari4ek / tvirl

Public resources for TVirl: IPTV for Android TV
32 stars 2 forks source link

Philips: Cant remove old channels! after reinstalling app [ERR-5-PHILIPS] #5

Open NoWLB opened 5 years ago

NoWLB commented 5 years ago

Reinstalled the app, and now the channels are stuck on there cant add new ones and cant remove the old ones, making my tv (55oled903/12) unuseable so i cant use antenna channels. because the memory is full or something (i dont know why)

ghost commented 5 years ago

Did you try reinstalling the app, and re-removing the channels?

On Sun, 14 Jul 2019, 04:22 NoWLB, notifications@github.com wrote:

Reinstalled the app, and now the channels are stuck on there cant add new ones and cant remove the old ones, making my tv (55oled903/12) unuseable so i cant use antenna channels. because the memory is full or something (i dont know why)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/stari4ek/tvirl/issues/5?email_source=notifications&email_token=AFLWGQYOXTFXRHHIG4IVQZ3P7I2RVA5CNFSM4IDBXK42YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G7BP3HQ, or mute the thread https://github.com/notifications/unsubscribe-auth/AFLWGQ23P55VQ26WFN2VYY3P7I2RVANCNFSM4IDBXK4Q .

NoWLB commented 5 years ago

I tried to do that, but it only deleted 0 channels and 0 programs. I dont know if the link is dead because i tried a 24 hour test of a iptv company. If i try with another link I only getting this error IMG_20190713_191258

do you have any idea :/?

NoWLB commented 5 years ago

I have tried to "Reinstall the tv" but it dosent delete the channel memory.

and i have disk space on my tv (about 10Gb)

stari4ek commented 5 years ago

Please check the FAQ about TVirl's integration to system: https://github.com/stari4ek/tvirl/wiki/faq

TVirl installs all data (channels and programs) to system DB. Cleaning data from system settings for TVirl does not remove those data. TVirl's own "clean all" from it's main menu does remove all previously installed data if it succeed.

It looks like you have Philips TV.

This issue is plaguing Philips TVs and only them. Some other users with huge amount of channels reported it before.

Philips system has some kind of device-specific issue with it's disk partitions and system database TVirl uses to cooperate with system.

This kind of error raises for other devices when there is no free disk space and errors are always fixed when free disk space is allocated. But on Philips it happens even if there're plenty of free disk space (as reported by the system).

My guesses based on all technical evidences that Philips TV has their own unique non-standard disk partitions layout for system folders. And those partition is small and it can be filled up by active DB usage from TVirl or other apps.

All TV (channels/programs) data are managed by next system packages:

You can try to clean up those apps using system settings - but according to reports from other users - there is no luck with it. (it does work on shield/mibox)

Sorry, I do not have Philips TV to investigate this device-specific issue.

stari4ek commented 5 years ago

Error comes from ContentResolver which operates with sqlite:

Caused by: android.database.sqlite.SQLiteException: cannot rollback - no transaction is active (code 1)

Digging around sqlite source code didn't bring any valuable evidences.

Callstack:

java.lang.RuntimeException: Failed to delete channels (batch)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.b4.e.a(ActionRemoveChannelsBatch.java:17)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.b4.e.a(ActionRemoveChannelsBatch.java:1)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.d4.e.a(ChannelsInstaller.java:6)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.d4.b.a(Unknown Source:10)
    at h.b.k0.e.b.g0$a.a(FlowableMap.java:4)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.f4.f1$a.a(OperatorBatchChannelsTasks.java:6)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.f4.f1$a.a(OperatorBatchChannelsTasks.java:1)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.f4.j1$a.a(OperatorReorderObsoleteChannelsFirst.java:6)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.f4.j1$a.a(OperatorReorderObsoleteChannelsFirst.java:1)
    at h.b.k0.e.b.j$a.a(FlowableDistinct.java:5)
    at h.b.k0.e.b.e$a.a(FlowableConcatArray.java:3)
    at h.b.k0.e.b.j0$a.b(FlowableOnBackpressureBuffer.java:14)
Caused by: android.database.sqlite.SQLiteException: cannot rollback - no transaction is active (code 1)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:179)
    at android.database.DatabaseUtils.readExceptionWithOperationApplicationExceptionFromParcel(DatabaseUtils.java:158)
    at android.content.ContentProviderProxy.applyBatch(ContentProviderNative.java:522)
    at android.content.ContentProviderClient.applyBatch(ContentProviderClient.java:465)
    at android.content.ContentResolver.applyBatch(ContentResolver.java:1578)
    at by.stari4ek.utils.f.a(ContentResolverUtils.java:2)
    at by.stari4ek.utils.f.a(ContentResolverUtils.java:1)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.b4.e.a(ActionRemoveChannelsBatch.java:15)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.b4.e.a(ActionRemoveChannelsBatch.java:1)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.d4.e.a(ChannelsInstaller.java:6)
    at by.stari4ek.iptv4atv.tvinput.tvcontract.d4.b.a(Unknown Source:10)
    at h.b.k0.e.b.g0$a.a(FlowableMap.java:4)
mjs00000 commented 5 years ago

I have this issue too (I have 2 Philips Android TVs) is this not solvable using TVirl or any other known app? Once importing IPTV channels can you not reimport again? Thanks.

stari4ek commented 5 years ago

@mjs00000, TVirl do changes in system DB with channels only if there are changes in playlist itself. So if there is no changes - it won't touch "channels" DB. But "programs" DB is changed all the time if you have valid EPG and update it time-to-time.

stari4ek commented 5 years ago

BTW, I saw same error from Firebase library (google's one) which failed to perform some DB operations during app's start-up. So it's not related to TVirl itself, but system issue.

NoWLB commented 5 years ago

Hey! I have an update on this problem. We returned the tv and bought another one,

But the old tv did they sent to the Service company, And what I see they changed the whole mainboard of the old tv.

So maybe this is a hardware breaking problem and you maybe should Remove the support of the app for Philips tv to this get fixed.

Kind Regards Noel

stari4ek commented 5 years ago

Thank you for the update

stari4ek commented 5 years ago

Multiple users reported that issue gone by itself.

NoWLB commented 5 years ago

So its has been fixed?

stari4ek commented 5 years ago

Do not know any specifics. It could be TV software update or some kind of auto-purging finally working.

markbelch commented 4 years ago

I just found this thread while trying to fix this problem your app caused with my Philips Android TV. The TV is just 1 day old and I have lost the Favourites function after getting this error. A factory reset has not solved the issue. Please help me recover Favourites.

NoWLB commented 4 years ago

What Tv modell did you get and what android version do you have? and have you tried to software update it?

markbelch commented 4 years ago

The tv is a Philips 50PUS7304/12. I have been able to do a factory reset now. There's still one problem, I am unable to create a Favourites List. All I get is a black screen. I previously had a Favourites List of satellite channels.

stari4ek commented 4 years ago

I just found this thread while trying to fix this problem your app caused with my Philips Android TV. The TV is just 1 day old and I have lost the Favourites function after getting this error. A factory reset has not solved the issue. Please help me recover Favourites.

Please note, that TVirl does nothing harmful to the system. It adds channels/programs/logo to the system according to API provided by Android TV/Tv Input Framework (https://source.android.com/devices/tv).

It works well for all other devices (Sony, MiBox, NVidia Shield, ...).

There is some issue on Philips side with their implementation of TV App/TV Input Framework which prevents it from working properly.

There's still one problem, I am unable to create a Favourites List

Sorry, TVirl does not anything about "favourites list". This is not part of "Tv Input Framework" and there is no way TVirl can manipulate with it.

BTW, there is small amount (comparing to others) of Philips users who uses TVirl

stari4ek commented 4 years ago

@markbelch , Can you explain a bit what did happened exactly? Have you got error referenced here (SQLiteException or "disk is full")? Or there was some conflict with satellite channels?

If first one, how big your playlist? How many channels and logo do you have in it?

stari4ek commented 4 years ago

I've blocked (at least temporary) Philips TVs in Play Store console for TVirl for now. I don't believe that they will ever fix their crappy software (there're some other issues related to Philips only) but without real tv in hands it's impossible to investigate issues and find out any workaround for it

markbelch commented 4 years ago

I have 4705 channels in the playlist plus logos and was only getting the "disk is full" error. I think I should replace the TV with a Sony instead so that I can use TVirl. For me, the integration of IPTV + Satellite channels into one channel list is the main attraction of an Android TV.

stari4ek commented 4 years ago

Sony has it's own twists sometime but it does not have that much troubles for TVirl. Honestly speaking all TVs have issues and some own specifics related to "Tv Input Framework" (most probably they polish system TV App for own cable/satellite needs and break other system stuff for 3rd party tv inputs like TVirl). Sony, TCL, Xiaomi, but Philips is the most problematic in my experience. Most polished and supported Android TV device is NVidia Shield, hands down here.

@markbelch, Did you manage to fully reset your TV? Cause other Philips users reported that when they reset device - channels stay on the device, even if no playlist installation performed by TVirl after reset (this is another "wtf?"). If so, please provide some information or link for other users to follow if needed.

4k playlist is not the biggest one (there're some 20-40k+ with VODs playlists used in the wild). One user reported that there wasn't "disk is full" error when he installed playlist with logo disabled. TVirl adds all channels logo to system DB and this is the most consuming part of those DB. Default (from AOSP) implementation of TvProvider (com.android.providers.tv system package) resizes all images before adding them to the DB. But there is no guarantee that Philips implementation performs the same. If there are any limitations for DB itself - theoretically it can bring this kind of issue. In next version (0.4.4.5) TVirl will resize all channel's logo by itself before sending to system DB. So, theoretically, it can prevent "overflowing" DB if there're limitations and it does not resize images by itself.

markbelch commented 4 years ago

I wasn't able to fully reset the Philips TV. The satellite channels I had tuned in were deleted but my original favourites list returned. Previously, I had no access to a favourites list at all, however I got the favourites list back but it could not be edited. Any channels added to the list could not be saved, deleted or moved.

The TV was working for a few hours but suddenly shut itself down. I now only get the Android Recovery screen. Clicking factory data reset from this screen results in a cycle of the TV formatting and erasing data > the Philips logo > the Android boot logo > a black screen.

After about 12-15 cycles, the set up screen appears. I can pair the remote and select my region but the the TV powers off and returns to the Android Recovery screen. The TV is now totally useless and I haven't been able to find any solution to recover the system.

I suspect the cause of the problem is caused by Philips poor implementation of Android.

IMG_7411

markbelch commented 4 years ago

I have a replacement Philips TV coming. I'd like to install Live Channels then reinstall the playlist on TVirl without the logos. I'll update on how it goes.

stari4ek commented 4 years ago

Thank you for the update.

There is update (0.4.4.5) coming which have some functionality added on TVirl's side, which is implemented in AOSP version of Tv Input Framework, but for example is missing (or configured in another way) on Sony. So, there is a chance that it's also missing on Philips:

Theoretically, it can workaround issue with SQL DB on Philips.

stari4ek commented 4 years ago

Issue is still valid. I'm getting reports for Philips TV which fails to add/delete channels.

stari4ek commented 4 years ago

According to report from user, having favorites added for channels from TVirl - prevented system from proper reset (there were installed channels after wipe, and they did work). Removing all favorites and performing another reset - did remove installed channels.

This is really hard to tell, what the magic is happening with Philips TVs

stari4ek commented 4 years ago

Another callstack, when TVirl tries to delete programs for channel which was removed from playlist:

com.pushtorefresh.storio3.StorIOException: Error has occurred during Delete operation. query = DeleteQuery{uri=content://android.media.tv/program?channel=68, where='', whereArgs=[]}
    at e.g.a.c.e.a.e$c.a(PreparedDeleteByQuery.java:8)
    at e.g.a.d.a.b(ChainImpl.java:5)
    at e.g.a.c.e.a.d.a(PreparedDelete.java:6)
        ... 
 Caused by: android.database.sqlite.SQLiteFullException: database or disk is full (code 13)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:175)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
    at android.content.ContentProviderProxy.delete(ContentProviderNative.java:547)
    at android.content.ContentResolver.delete(ContentResolver.java:1636)
       ...
stari4ek commented 4 years ago

This issue can be solved by resetting the TV. Here is the guide provided by user which got it from Philips support: Guide: How to reset Philips

stari4ek commented 4 years ago

Got more concrete error on

Caused by android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 4874 SQLITE_IOERR_SHMSIZE)
       at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:177)
       at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
       at android.content.ContentProviderProxy.query(ContentProviderProxy.java:418)
       at android.content.ContentResolver.query(ContentResolver.java:802)
       at android.content.ContentResolver.query(ContentResolver.java:752)
       at android.content.ContentResolver.query(ContentResolver.java:710)
       at com.pushtorefresh.storio3.contentresolver.impl.DefaultStorIOContentResolver$LowLevelImpl.query(DefaultStorIOContentResolver.java:317)
       at com.pushtorefresh.storio3.contentresolver.operations.get.DefaultGetResolver.performGet(DefaultGetResolver.java:20)
       at com.pushtorefresh.storio3.contentresolver.operations.get.PreparedGetListOfObjects$RealCallInterceptor.intercept(PreparedGetListOfObjects.java:80)
       at com.pushtorefresh.storio3.impl.ChainImpl.proceed(ChainImpl.java:65)
       at com.pushtorefresh.storio3.contentresolver.operations.get.PreparedGet.executeAsBlocking(PreparedGet.java:45)
       at com.pushtorefresh.storio3.contentresolver.operations.get.PreparedGetMandatoryResult.executeAsBlocking(PreparedGetMandatoryResult.java:27)
       at com.pushtorefresh.storio3.operations.internal.SingleOnSubscribeExecuteAsBlocking.subscribe(SingleOnSubscribeExecuteAsBlocking.java:28)
       at io.reactivex.internal.operators.single.SingleCreate.subscribeActual(SingleCreate.java:39)
       at io.reactivex.Single.subscribe(Single.java:3666)
       at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
       at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
       at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
       at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:764)

From documentation (https://www.sqlite.org/rescode.html#ioerr_shmsize):

(4874) SQLITE_IOERR_SHMSIZE The SQLITE_IOERR_SHMSIZE error code is an extended error code for SQLITE_IOERR indicating an I/O error within the xShmMap method on the sqlite3_io_methods object while trying to enlarge a "shm" file as part of WAL mode transaction processing. This error may indicate that the underlying filesystem volume is out of space.

"volume is out of space" while "Disk free: 1.04 GB". Still looks like TvProvider's DB is stored on volume with limited amount of space or quota applied

stari4ek commented 4 years ago

According to adb logcat obtained from a device, Philips does mirror TV database to "user settings" partition (/data/vendor/user_setting/rw/tv.db-wal):

12-01 21:25:27.154  7581  8195 I SQLiteConnection: /data/vendor/user_setting/rw/tv.db-wal 31043584 bytes: Bigger than 1048576; truncating
12-01 21:25:27.245  7581  8195 E SQLiteLog: (13) statement aborts at 1: [PRAGMA wal_checkpoint(TRUNCATE)] database or disk is full
12-01 21:25:27.246  7581  8195 W SQLiteConnection: Failed to truncate the -wal file
12-01 21:25:27.246  7581  8195 W SQLiteConnection: android.database.sqlite.SQLiteFullException: database or disk is full (code 13 SQLITE_FULL)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteConnection.nativeExecuteForString(Native Method)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:691)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteConnection.maybeTruncateWalFile(SQLiteConnection.java:345)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:307)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:196)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:503)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteConnectionPool.tryAcquireNonPrimaryConnectionLocked(SQLiteConnectionPool.java:987)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:693)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:378)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:894)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:834)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:149)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:137)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.database.CursorToBulkCursorAdaptor.getBulkCursorDescriptor(CursorToBulkCursorAdaptor.java:145)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:111)
12-01 21:25:27.246  7581  8195 W SQLiteConnection:  at android.os.Binder.execTransact(Binder.java:731)
>adb shell df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/root             2.2G  1.6G  590M  75% /
tmpfs                 977M  380K  976M   1% /dev
tmpfs                 977M     0  977M   0% /mnt
/dev/block/dm-1       438M  235M  194M  55% /vendor
/dev/block/mmcblk0p37 4.8G  1.9G  2.7G  42% /data
/dev/block/mmcblk0p5  5.8M  116K  5.5M   3% /perm
tmpfs                 977M   23M  954M   3% /data/vendor/tmp
/dev/block/mmcblk0p20 248M  9.2M  234M   4% /data/vendor/3rd_rw
/data/media           4.8G  1.9G  2.7G  42% /storage/emulated
stari4ek commented 4 years ago

It looks like partition itself is somehow broken or there are issues with sqlite client working with it. There are other same kind errors. Philips-own FavoriteListProvider fails to open /data/vendor/user_setting/rw/list.db

12-01 21:24:59.945  7581  8195 E SQLiteLog: (13) statement aborts at 1: [PRAGMA journal_mode=WAL] database or disk is full
12-01 21:24:59.947  7581  8195 E SQLiteDatabase: Failed to open database '/data/vendor/user_setting/rw/list.db'.
12-01 21:24:59.947  7581  8195 E SQLiteDatabase: android.database.sqlite.SQLiteFullException: database or disk is full (code 13 SQLITE_FULL)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteConnection.nativeExecuteForString(Native Method)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:691)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:372)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:299)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:196)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:503)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:204)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:196)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:880)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:865)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:739)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:729)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:355)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:298)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at org.droidtv.providers.tv.favorite.FavoriteListProvider.viewCreation(FavoriteListProvider.java:543)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at org.droidtv.providers.tv.favorite.FavoriteListProvider.query(FavoriteListProvider.java:335)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.content.ContentProvider.query(ContentProvider.java:1058)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.content.ContentProvider.query(ContentProvider.java:1150)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.content.ContentProvider$Transport.query(ContentProvider.java:242)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:102)
12-01 21:24:59.947  7581  8195 E SQLiteDatabase:    at android.os.Binder.execTransact(Binder.java:731)
stari4ek commented 4 years ago

Attempt to delete all programs:

12-01 20:54:31.771  2727  2742 E SQLiteLog: (13) statement aborts at 39: [DELETE FROM programs WHERE (package_name=?) AND (channel_id=?)] database or disk is full
12-01 20:54:31.773  2727  2742 E SQLiteLog: (1) statement aborts at 1: [ROLLBACK;] cannot rollback - no transaction is active
12-01 20:54:31.773  2727  2742 E DatabaseUtils: Writing exception to parcel
12-01 20:54:31.773  2727  2742 E DatabaseUtils: android.database.sqlite.SQLiteException: cannot rollback - no transaction is active (code 1 SQLITE_ERROR)
12-01 20:54:31.773  2727  2742 E DatabaseUtils:     at android.database.sqlite.SQLiteConnection.nativeExecute(Native Method)
12-01 20:54:31.773  2727  2742 E DatabaseUtils:     at android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:605)
12-01 20:54:31.773  2727  2742 E DatabaseUtils:     at android.database.sqlite.SQLiteSession.endTransactionUnchecked(SQLiteSession.java:439)
12-01 20:54:31.773  2727  2742 E DatabaseUtils:     at android.database.sqlite.SQLiteSession.endTransaction(SQLiteSession.java:401)
12-01 20:54:31.773  2727  2742 E DatabaseUtils:     at android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:566)
12-01 20:54:31.773  2727  2742 E DatabaseUtils:     at com.android.providers.tv.TvProvider.applyBatch(TvProvider.java:2036)
12-01 20:54:31.773  2727  2742 E DatabaseUtils:     at android.content.ContentProvider$Transport.applyBatch(ContentProvider.java:320)
12-01 20:54:31.773  2727  2742 E DatabaseUtils:     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:181)
12-01 20:54:31.773  2727  2742 E DatabaseUtils:     at android.os.Binder.execTransact(Binder.java:731)
stari4ek commented 4 years ago

Other apps experience same problems:

12-01 21:19:47.026  2345  2575 I ActivityManager: Start proc 7486:com.liskovsoft.smarttubetv.beta/u0a118 for service com.liskovsoft.smarttubetv.beta/com.liskovsoft.leanbackassistant.channels.SynchronizeDatabaseJobService

12-01 21:19:52.042  7486  7517 E SynchronizeDatabaseJobService: database or disk is full (code 13 SQLITE_FULL)
12-01 21:19:52.042  7486  7517 W System.err: android.database.sqlite.SQLiteFullException: database or disk is full (code 13 SQLITE_FULL)
12-01 21:19:52.045  7486  7517 W System.err:    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:175)
12-01 21:19:52.045  7486  7517 W System.err:    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
12-01 21:19:52.045  7486  7517 W System.err:    at android.content.ContentProviderProxy.update(ContentProviderNative.java:572)
12-01 21:19:52.045  7486  7517 W System.err:    at android.content.ContentResolver.update(ContentResolver.java:1720)
12-01 21:19:52.045  7486  7517 W System.err:    at com.liskovsoft.leanbackassistant.channels.ChannelsProvider.updateChannel(ChannelsProvider.java:317)
12-01 21:19:52.045  7486  7517 W System.err:    at com.liskovsoft.leanbackassistant.channels.ChannelsProvider.createOrUpdateChannel(ChannelsProvider.java:236)
12-01 21:19:52.045  7486  7517 W System.err:    at com.liskovsoft.leanbackassistant.channels.SynchronizeDatabaseJobService$SynchronizeDatabaseTask.updateOrPublishChannel(SynchronizeDatabaseJobService.java:156)
12-01 21:19:52.045  7486  7517 W System.err:    at com.liskovsoft.leanbackassistant.channels.SynchronizeDatabaseJobService$SynchronizeDatabaseTask.updateChannels(SynchronizeDatabaseJobService.java:112)
12-01 21:19:52.045  7486  7517 W System.err:    at com.liskovsoft.leanbackassistant.channels.SynchronizeDatabaseJobService$SynchronizeDatabaseTask.doInBackground(SynchronizeDatabaseJobService.java:103)
12-01 21:19:52.046  7486  7517 W System.err:    at com.liskovsoft.leanbackassistant.channels.SynchronizeDatabaseJobService$SynchronizeDatabaseTask.doInBackground(SynchronizeDatabaseJobService.java:87)
12-01 21:19:52.046  7486  7517 W System.err:    at android.os.AsyncTask$2.call(AsyncTask.java:333)
12-01 21:19:52.046  7486  7517 W System.err:    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
12-01 21:19:52.046  7486  7517 W System.err:    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
12-01 21:19:52.046  7486  7517 W System.err:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
12-01 21:19:52.046  7486  7517 W System.err:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
12-01 21:19:52.046  7486  7517 W System.err:    at java.lang.Thread.run(Thread.java:764)
12-01 21:19:52.046  7486  7486 D SynchronizeDatabaseJobService: Channels synced successfully.
stari4ek commented 4 years ago

Philips org.droidtv.recommendation has related issues:

11-30 20:51:57.617  2345  2575 I ActivityManager: Start proc 6538:org.droidtv.recommendation/1000 for broadcast org.droidtv.recommendation/.RecommendationLoader

11-30 20:51:59.101  6538  6564 E AndroidRuntime: FATAL EXCEPTION: RecommendationRulesThread
11-30 20:51:59.101  6538  6564 E AndroidRuntime: Process: org.droidtv.recommendation, PID: 6538
11-30 20:51:59.101  6538  6564 E AndroidRuntime: android.database.sqlite.SQLiteException: Query failed: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.query(java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String)' on a null object reference
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:179)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at android.content.ContentProviderProxy.query(ContentProviderNative.java:418)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at android.content.ContentProviderClient.query(ContentProviderClient.java:163)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at android.content.ContentProviderClient.query(ContentProviderClient.java:146)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at android.content.ContentProviderClient.query(ContentProviderClient.java:136)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at org.droidtv.recommendation.RecommendationRules.generateRandomRecommendations(RecommendationRules.java:540)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at org.droidtv.recommendation.RecommendationRules.generateCurrentRecommendations(RecommendationRules.java:777)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at org.droidtv.recommendation.RecommendationRules.access$500(RecommendationRules.java:52)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at org.droidtv.recommendation.RecommendationRules$RecommendationHandler.handleMessage(RecommendationRules.java:914)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:106)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:193)
11-30 20:51:59.101  6538  6564 E AndroidRuntime:    at android.os.HandlerThread.run(HandlerThread.java:65)
stari4ek commented 4 years ago

Even Spotify fails with same issue:

11-30 20:52:09.258  2345  2575 I ActivityManager: Start proc 6989:com.spotify.tv.android/u0a123 for broadcast com.spotify.tv.android/.service.SpotifyTVService$BootStarter

11-30 20:52:20.247  6989  6989 E AndroidRuntime: FATAL EXCEPTION: main
11-30 20:52:20.247  6989  6989 E AndroidRuntime: Process: com.spotify.tv.android, PID: 6989
11-30 20:52:20.247  6989  6989 E AndroidRuntime: java.lang.RuntimeException: Unable to start service com.spotify.tv.android.service.SpotifyTVService@8f3f7c0 with Intent { act=com.spotify.tv.android.service.action.client.ACTION_PERFORM_INIT flg=0x4 cmp=com.spotify.tv.android/.service.SpotifyTVService (has extras) }: android.database.sqlite.SQLiteFullException: database or disk is full (code 13 SQLITE_FULL)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3724)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.app.ActivityThread.access$1600(ActivityThread.java:200)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:106)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:193)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6718)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
11-30 20:52:20.247  6989  6989 E AndroidRuntime: Caused by: android.database.sqlite.SQLiteFullException: database or disk is full (code 13 SQLITE_FULL)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:175)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.content.ContentProviderProxy.delete(ContentProviderNative.java:547)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.content.ContentResolver.delete(ContentResolver.java:1684)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at com.spotify.tv.android.recommendations.RecommendationsChannelManager.k(:128)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at com.spotify.tv.android.recommendations.RecommendationsChannelManager.<init>(:89)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at com.spotify.tv.android.service.SpotifyTVService.b(:7)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at com.spotify.tv.android.service.SpotifyTVService.onStartCommand(:2)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3705)
11-30 20:52:20.247  6989  6989 E AndroidRuntime:    ... 8 more
stari4ek commented 3 years ago

Created the issue for Android: https://issuetracker.google.com/issues/174678821

stari4ek commented 3 years ago

With 0.5.2.0 update TVirl will disable channels logo installation for Philips by default (for newly configured playlists). Channels logos are the most heavy stuff stored in the DB since channels logos are stored as binary BLOB (png images data downscaled to fit 256x256px). If the issue is with the size of /data/vendor/user_setting/ it should help keep the size of DB small.

NoWLB commented 3 years ago

Coolio!

On Sat, Dec 12, 2020 at 3:21 PM Michael Sotnikov notifications@github.com wrote:

With 0.5.2.0 update TVirl will disable channels logo installation for Philips by default (for newly configured playlists). Channels logos are the most heavy stuff stored in the DB since channels logos are stored as binary BLOB (png images data downscaled to fit 256x256px). If the issue is with the size of /data/vendor/user_setting/ it should help keep the size of DB small.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/stari4ek/tvirl/issues/5#issuecomment-743763179, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJEDBV7IKMLIKK3ZQPZX2TTSUN37NANCNFSM4IDBXK4Q .

Anonym-tsk commented 2 years ago

If you have problem and can't reinstall channels in TVirl:

  1. Clear data for "TV Storage" (com.android.providers.tv)
  2. Clear data for "TVirl"
  3. Reinstall channels in TVirl

This doesn't remove installed antenna channels.