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

Storage running out of space causes the script to completely fail #51

Closed
worldendDominator opened this issue Sep 3, 2015 · 12 comments
Closed

Comments

@worldendDominator
Copy link

After I updated to 7.0 a few days ago, the script literally stopped doing anything. There is no "BBB Settings" link to begin with.

Things I already tried: restarting the browser, deleting and reinstalling the script, switching off all other danbooru-related scripts. None of that helped.

@ghost
Copy link

ghost commented Sep 3, 2015

If you're using Firefox, please go to "about:support" by typing it into the address bar and use the "copy text to clipboard" button to paste the info here. If you're using another browser, let me know which browser it is, the script manager you're using, and the versions of both the browser and the manager.

Something else that could be helpful would be opening your browser's console (Control + Shift + J in Firefox), clearing anything in it out, opening/refreshing Danbooru, and pasting any messages that pop up here. It's important to be sure the JavaScript/JS errors, warnings, and logs are all enabled for the console. If it's been messed with before, they may be off.

@worldendDominator
Copy link
Author

I use Firefox, but it's in Russian and I had a hard time finding a way to change language. Which values do you need? I can find and post them.

The console says, "Persistent storage maximum size reached" at 2884:0.

@ghost
Copy link

ghost commented Sep 4, 2015

The browser and script manager info probably won't be important anymore so let's ignore that for now.

Please visit https://arty.name/localstorage.html, let it finish calculating, and paste the results here (ex: "5200000 characters were stored successfully, but 5300000 weren't.").

Next, open Danbooru like you usually would and do one of the following:

  • Open the console (Control + Shift + K), paste the following into it, and submit/enter it.
var i,utf,log=[],actotal=0,total=0;
for(i in localStorage){
if(!localStorage.hasOwnProperty(i))
continue;
utf=localStorage[i].length*2;
if(!/^ac-/.test(i))
log.push(i+" = "+(utf/1024)+" kB");
else
actotal+=utf;
total+=utf;}
log.push("");
log.push("Autocomplete Total kB = "+(actotal/1024)+" kB");
log.push("Autocomplete Total MB = "+(actotal/1024/1024)+" MB");
log.push("");
log.push("Total kB = "+(total/1024)+" kB");
log.push("Total MB = "+(total/1024/1024)+" MB");
document.body.innerHTML=log.join("<br/>");
  • Paste the following into the address bar, remove the "DELETEME" at the very beginning of what you pasted, and submit/enter it.

DELETEMEjavascript:var i,utf,log=[],actotal=0,total=0; for(i in localStorage){ if(!localStorage.hasOwnProperty(i)) continue; utf=localStorage[i].length*2; if(!/^ac-/.test(i)) log.push(i+" = "+(utf/1024)+" kB"); else actotal+=utf; total+=utf;} log.push(""); log.push("Autocomplete Total kB = "+(actotal/1024)+" kB"); log.push("Autocomplete Total MB = "+(actotal/1024/1024)+" MB"); log.push(""); log.push("Total kB = "+(total/1024)+" kB"); log.push("Total MB = "+(total/1024/1024)+" MB"); document.body.innerHTML=log.join("<br/>");

After doing one of those steps, the page should change to display some information about your storage's current size. Paste the results that show up in the page here.

@worldendDominator
Copy link
Author

5200000 characters were stored successfully, but 5300000 weren't.

_at.hist.0425 = 0.33984375 kB
danbooru-autocomplete-version = 0.001953125 kB
bbb_thumb_cache = 62.45703125 kB
bbb_settings = 4.0078125 kB

Autocomplete Total kB = 1040.650390625 kB
Autocomplete Total MB = 1.0162601470947266 MB

Total kB = 1107.45703125 kB
Total MB = 1.0815010070800781 MB

@ghost
Copy link

ghost commented Sep 4, 2015

...and now I'm puzzled. According to that "persistent storage" error message from the console, your local storage is getting full. Going by what you just posted, you have the default of 5 MB storage allocated for every domain and Danbooru is currently using a little over 1 MB of that. Not full by any means. The message and tests don't support each other...

If the "BBB Settings" menu option definitely isn't in the top menu bar to the left of the "More »" option, then are you able to install the older version from https://greasyfork.org/en/scripts/3575-better-better-booru?version=31223 and get it working? If the old version doesn't work and unless you want to try the same steps again and make sure you use your usual Danbooru domain each time, the assumption I'm left with is something has the browser storage bugged up. It will make you lose your script settings, but you can try completely clearing out the cache and cookies (Control + Shift + Delete). That or maybe you have an extension installed that tries to manage local storage and/or cookies?

@worldendDominator
Copy link
Author

Old version works without problems.

@ghost
Copy link

ghost commented Sep 4, 2015

Well then. Can you create a copy of your settings from the backup section in the preferences tab and paste that here? From there, when I get off from work, I can load up the old version with a copy of your settings and see if I can replicate the problem after updating to 7.0.

Since you can backup your settings, you should also keep a copy and try to change your settings just to be sure that changes are being allowed to save (toggle a feature, save, and refresh to see if it stayed on what you toggled it to). Either way, you may want go ahead and clear out your cache and cookies (the cookies setting is linked to local storage) after creating a backup and see whether you can use the new version. If it works then, you can try restoring from your backup.

@worldendDominator
Copy link
Author

Better Better Booru v6.5.4 Backup (2015-09-05 18:28:20):

{"bbb_version":"6.5.4","alternate_image_swap":false,"arrow_nav":false,"autohide_sidebar":"none","autoscroll_image":true,"border_width":2,"bypass_api":false,"clean_links":false,"custom_status_borders":false,"custom_tag_borders":true,"direct_downloads":false,"enable_status_message":false,"hide_ban_notice":false,"hide_comment_notice":false,"hide_pool_notice":false,"hide_sign_up_notice":false,"hide_tag_notice":false,"hide_tos_notice":true,"hide_upgrade_notice":true,"hide_upload_notice":false,"image_drag_scroll":true,"image_resize":true,"image_resize_mode":"width","load_sample_first":true,"manage_cookies":false,"override_account":false,"post_tag_titles":false,"remove_tag_headers":true,"script_blacklisted_tags":"","search_add":false,"show_deleted":true,"show_loli":true,"show_shota":true,"show_toddlercon":false,"single_color_borders":false,"thumbnail_count":50,"track_new":false,"status_borders":[{"tags":"deleted","is_enabled":true,"border_color":"#000000","border_style":"solid","class_name":"post-status-deleted"},{"tags":"flagged","is_enabled":true,"border_color":"#FF0000","border_style":"solid","class_name":"post-status-flagged"},{"tags":"pending","is_enabled":true,"border_color":"#0000FF","border_style":"solid","class_name":"post-status-pending"},{"tags":"child","is_enabled":true,"border_color":"#CCCC00","border_style":"solid","class_name":"post-status-has-parent"},{"tags":"parent","is_enabled":true,"border_color":"#00FF00","border_style":"solid","class_name":"post-status-has-children"}],"tag_borders":[{"tags":"loli","is_enabled":true,"border_color":"#FFC0CB","border_style":"solid"},{"tags":"shota","is_enabled":true,"border_color":"#66CCFF","border_style":"solid"},{"tags":"toddlercon","is_enabled":true,"border_color":"#9370DB","border_style":"solid"},{"tags":"status:banned","is_enabled":false,"border_color":"#000000","border_style":"solid"}],"tag_scrollbars":0,"thumb_cache_limit":5000,"track_new_data":{"viewed":0,"viewing":1},"border_spacing":0,"minimize_status_notices":true,"show_banned":true,"show_resized_notice":"all"}

@ghost
Copy link

ghost commented Sep 6, 2015

I have not been able to reproduce the problem by just using your settings with 6.5.4 or 7.0. However, I have been able to reproduce it by filling up local storage. It turns out that all the sub-domains of a domain share the same storage space (5MB default), but do not share their info with each other. Even if one sub-domain can't see another's stored data, their data still exists within the same limited amount of space. In addition to sub-domains, this also applies to secure (https) and non-secure (http) connections. Due to Danbooru's numerous sub-domain possibilities, it's quite easy for that storage to get filled up.

If you haven't already done so, clearing out the cookies (and maybe cache?) via the Firefox option would be the easiest solution. Aside from that, you could also clear out the storage for each donmai.us domain possibility you don't use via one of the following:

UPDATE: I've added another option in the next comment.

  • Open the console (Control + Shift + K), paste the following into it, and submit/enter it.
localStorage.clear();
var i,utf,log=[],actotal=0,total=0;
for(i in localStorage){
if(!localStorage.hasOwnProperty(i))
continue;
utf=localStorage[i].length*2;
if(!/^ac-/.test(i))
log.push(i+" = "+(utf/1024)+" kB");
else
actotal+=utf;
total+=utf;}
log.push("");
log.push("Autocomplete Total kB = "+(actotal/1024)+" kB");
log.push("Autocomplete Total MB = "+(actotal/1024/1024)+" MB");
log.push("");
log.push("Total kB = "+(total/1024)+" kB");
log.push("Total MB = "+(total/1024/1024)+" MB");
document.body.innerHTML=log.join("<br/>");
  • Paste the following into the address bar, remove the "DELETEME" at the very beginning of what you pasted, and submit/enter it.

DELETEMEjavascript:(function(){localStorage.clear();var i,utf,log=[],actotal=0,total=0; for(i in localStorage){ if(!localStorage.hasOwnProperty(i)) continue; utf=localStorage[i].length*2; if(!/^ac-/.test(i)) log.push(i+" = "+(utf/1024)+" kB"); else actotal+=utf; total+=utf;} log.push(""); log.push("Autocomplete Total kB = "+(actotal/1024)+" kB"); log.push("Autocomplete Total MB = "+(actotal/1024/1024)+" MB"); log.push(""); log.push("Total kB = "+(total/1024)+" kB"); log.push("Total MB = "+(total/1024/1024)+" MB"); document.body.innerHTML=log.join("<br/>");})()

Both of these steps should confirm for you that there is 0MB of storage being used after using them. The possible donmai.us values you would want to try clearing are the following:
http://danbooru.donmai.us/
http://sonohara.donmai.us/
http://hijiribe.donmai.us/
http://donmai.us/
http://safebooru.donmai.us/
https://danbooru.donmai.us/
https://sonohara.donmai.us/
https://hijiribe.donmai.us/
https://donmai.us/
https://safebooru.donmai.us/

I'm currently deciding how to work around this newly found limit of local storage.

@ghost
Copy link

ghost commented Sep 7, 2015

Alternatively, you can try testing out what will eventually become 7.1.1 or 7.2 at the following URL:
https://raw.githubusercontent.com/pseudonymous/better-better-booru/storage-toying/better-better-booru.user.js

@worldendDominator
Copy link
Author

Yep, after clearing cookies, everything works perfectly. Case closed I guess, and thanks for the help.

@ghost ghost changed the title The script stopped working after update Storage running out of space causes the script to completely fail Sep 8, 2015
@ghost
Copy link

ghost commented Sep 8, 2015

Going to keep this open until I've rigged up something that will prevent this problem in the future. The previous linked script is just me roughing out things, but I believe I'm on the right track now with my current progress.

Yoink! * hijacks issue *

@ghost ghost reopened this Sep 8, 2015
@ghost ghost closed this as completed Jan 16, 2016
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant