cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
If you know more about files sizes, you can make more informed decisions about which files you upload and then you can maximize the space in your Dropbox Basic account?

Dropbox tips & tricks

Learn how to get the most out of Dropbox with other users like you.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to fix being stuck on Indexing forever loop of death on multi million file DBs after db crash

How to fix being stuck on Indexing forever loop of death on multi million file DBs after db crash

XionicFire
Collaborator | Level 9

Ok so I've used Dropbox for almost as long as its existed and recently due to frustration with the never finishing indexing bug I was forced to find out why this kept happening so I could prevent it.

 

Bear with me on this long post but trust me its worth it, what I found was mind blowing and game changing.

 

So our business Dropbox is more than 9 million files strong, I've noticed REALISTICALLY any machine handling over 2 million will just enter an indexing loop at some point from which it will never recover, after its happened 5 times in the last week I was pissed enough to that I decided I was going to find out why this is happening, I know I'm pushing the limits but we've had machines with 2.5m files running fine for years, why some work fine and some don't was a mystery, one I was determined to find out.

 

When you add stuff to your Dropbox, Dropbox has to index it so  it can know what to do with it.

If you add "too much stuff"  (copying 200,000 files of small size in one go, coders know what I'm talking about)

or

do it "too fast" (changing access permissions on 1.5 million files located within Dropbox in one go in less than 5 minutes)

on a computer with too many files (1-2+m)

this causes Dropbox to start indexing them all at once causing the system to slow to a crawl

however if you don't let Dropbox finish before doing something else (like adding more files or using the computer for other tasks)

or

someone else adds a bunch of files on another machine

its almost for sure going to cause Dropbox to crash and restart during this process (it happens quite frequently),

this crashing and restarting triggers a full reindexing of the ENTIRE database, ALL files, and since the machine is already trying to download or upload some of the new files while trying to reindex the current millions of files, doing both at once overtaxes it, which causes it to crash, and were back to square one with the infinite indexing crash loop.

 

This kept happening to us all the time, the only solution was to unlink and relink the Dropbox account so all pending changes were lost, we got a bunch of conflicted copies and spent days sorting out the mess.

 

So I figured I needed to see what was going on with Dropbox, what it was doing when it was "indexing" to find out what was causing the crashes.

 

So after looking for a while I found using Microsoft's sysinternals process monitor (https://docs.microsoft.com/en-us/sysinternals/downloads/procmon) configured in a certain way allowed me to look at EXACTLY what dropbox was doing and I found out all I just told you and another very important piece of info.

(if you want to see how awesome it looks in action check out THIS video:)

 

When you click PAUSE FILE SYNCING you would think Dropbox pauses and ceases all operations, but you are wrong!, it pauses all incoming and outgoing transfers but any INDEXING tasks keep going!

 

This is an absolute game changer! now if I see a machine that says "Indexing" for a long time, I turn on the process monitor, hit pause on the file syncing and watch as the machine does the indexing at super high speed (5-10 times faster than doing it while downloading), it usually finishes doing the full file reindexing in a couple of minutes once its done I can hit back resume and keep going, I've never had the app crash while doing this "offline" or "paused" indexing, thus avoiding the inevitable crash, and reindex loop.

 

I have been successful in recovering 4 machines from the indexing loop of death using this method, where before I was screwed and had to eat the duplicate files and cleanup for a week and a TON of annoyed users in the office.

 

Basically if your machine is taking too long indexing or is stuck indexing after a crash just hit "pause for 1 hour" and forget about it, it will still be working on the indexing in the background, and when it restarts it should have finished the re-index avoiding a crash when trying to download/upload the new files.

 

Id wish Dropbox would have told us this, I never expected it to keep indexing while paused, I assumed pause was PAUSE, as in, cease all operations, it would have saved me so many headaches.

 

All they need to do now is let us have a "log viewer" or something so we can tell when its done doing its thing and we can hit resume, also show us, even when in pause, when its indexing and when its not, so when its done we know we can restart it safely, or the better yet, set it to where if Dropbox has to index a large volume of files (say over 100), it will automatically pause all other disk operations until the indexing is complete, then restart the downloads, trying to do both does not work, i know you want it to but it just doesn't, and just causes the whole thing to explode non stop in a loop of death, maybe enable this on a setting somewhere? or auto enable it on machines with over 500k files? something has to be able to be done.

 

TLDR:

If your Dropbox is stuck indexing, hit pause 30 mins, and let it do its thing until its done, it will keep on doing it even when paused, you wont know if its doing anything or working unless you use procmon, but its working, and try avoid using the hard drive or the machine until its done, (usually less than 30 mins), and your indexing/crashing problem will be fixed. 

 

Message to Dropbox:

Dear Dropbox, Please give us a way to view this info without having to resort to third party programs, this way we can help auto troubleshoot our Dropbox issues and take a lot of load off your customer service guys.

Something like: Enabling a setting  somewhere saying "activate/enable troubleshoot/server mode" or something that allows us to turn on an always shown (ALWAYS, NOT ONLY WHEN MOUSE OVER, BUT ALWAYS!!!) 3 tab little window,  containing:

 

Indexing files. (with a current list of the exact files being indexed and their speed (x files per sec)/paths)

Downloading Files.(with a current list of the exact files being downloaded and their speed/paths)

Uploading Files (with a current list of the exact files being uploaded and their speed/paths)

 

There's another issue with slow uploads due to Dropbox connections stuck in a "stagnant state" (force closing the TCP socket connection using netmon restarts the download/upload and speed goes back up again) but that's another problem for another time.

 

I hope this was helpful to some other sysadmin and sorry for the long message but it needed explaining.

6 Replies 6

Re: How to fix being stuck on Indexing forever loop of death on multi million file DBs after db cras

XionicFire
Collaborator | Level 9

Also worth nothing, this is not a silver bullet, theres other cases where the computer is just stuck indexing forever, those are usually caused by locked files, corrupt files, naming errors, permissions issues or other random issues having to to with the exact file in question, if this is your case this fix will not help you, but procmon will, you will know exactly what file is causing the problem instead of the "super usefull" /rolleyes "indexing 4 files" message, and you will be able to find out whats causing it and fix it.

Re: How to fix being stuck on Indexing forever loop of death on multi million file DBs after db cras

XionicFire
Collaborator | Level 9

Someone just suggested to me another great way to find out if its done indexing, when your dropbox is indexing on crappy computers it can use up to 50% of the CPU power, hit pause, you will notice the CPU will not come down, it will stay high, for a while then after a few minutes it will go down to 1-2% this is when you know that its finished indexing and you can hit resume.

 

I know ill be using that tip from now on, its much easier than procmon

 

Just open your task manager or type "resmon" into your windows console, when you see the Dropbox CPU usage go down like this picture, you know its done indexing and its safe to hit resume.

 

DBIndexing.png

Re: How to fix being stuck on Indexing forever loop of death on multi million file DBs after db cras

Nicholas M.4
Helpful | Level 5

Thanks, good to know

I want to add a folder that has millions of small files in it. I tried  a few years back and Dropbox just couldn't cope. I might give it another go armed with this information.

Re: How to fix being stuck on Indexing forever loop of death on multi million file DBs after db cras

INDIcisive
New member | Level 2

XionicFire,

Thank you for the well written easily understood post. I've experienced the same problem many years ago only to end up in LOOP hell. Fighting against the machine only caused increased aggravation and lockups.

Dealing with a multitude of files and/or excessively large files can be a nightmare to the point of overtaxing the system. Glad to know that purgatory exists in the form of pausing sync and walking away for a bit.

 

Absolutely agree that Dropbox needs to supply an under the hood monitor. Plenty of IT folks would thank them, but until that happens keep 3rd party tools attached to your Batman utility belt.

Thanks again.

Re: How to fix being stuck on Indexing forever loop of death on multi million file DBs after db cras

DaveHolmes
Explorer | Level 3

As another long term user I also have this issue and it is fricking annoying. I use two PCs and Android, so things not syncing causes major issues. 

A full sync takes over a week on high speed internet using ethernet, so I don't want to unlink, plus there is always the fear that my latest changes would somehow roll back to the earlier changes.  Confilicting file issues would also take me ages to sort out. I am trying the pause technique here to see if it fixes it for me as I have been stuck on 93 files indexing for 2 weeks.  


Most of my changes are folders moving. I noticed they did changed things a little and fixed one problem, back in the day when you moved a folder it would count as extra in your allwance until it synced and removed it from where it was. but now I guess each file has a unique id and it no longer gives me over limit warnings which used to cause it stop syncing too.

Re: How to fix being stuck on Indexing forever loop of death on multi million file DBs after db cras

Walter
Dropboxer

Hey @DaveHolmes, sorry to hear about this.

 

If you're still stuck at syncing, could you let us know the device's exact OS and the version of the desktop app installed there? 

 

A screenshot of the app's status as shown in your system tray would also help, so feel free to include one. 

 

On a side note, have you tried adjusting your bandwidth settings through the app's preferences to see if it helps at all?


Walter
Community Moderator @ Dropbox
dropbox.com/support


Heart Did this post help you? If so, give it a Like below to let us know.
:arrows_counterclockwise: Need help with something else? Ask me a question!
:pushpin: Find Tips & Tricks Discover more ways to use Dropbox here!

Who's talking

Top contributors to this post

  • User avatar
    Walter Dropboxer
  • User avatar
    DaveHolmes Explorer | Level 3
  • User avatar
    INDIcisive New member | Level 2
  • User avatar
    Nicholas M.4 Helpful | Level 5
  • User avatar
    XionicFire Collaborator | Level 9
What do Dropbox user levels mean?
Need more support?