[Pulp-list] MongoDB document size errors

Pradeep Kilambi pkilambi at redhat.com
Tue Aug 3 14:32:27 UTC 2010


On 08/02/2010 11:00 PM, Mike McCune wrote:
> I spent some time today tracking down the exception that a few people 
> were seeing:
>
>   InvalidDocument: document too large - BSON documents are limited to 
> 4 MB
>
> I wrote a unit test to create a repo and add 5,000 packages to the 
> repository and easily hit the above error:
>
> File "/home/mmccune/devel/pulp/test/unit/test_api.py", line 615, in 
> test_sync_large_repo
>     self.rapi.update(repo)
>   File 
> "/home/mmccune/devel/pulp/test/unit/../../src/pulp/auditing.py", line 
> 166, in _audit
>     _record_event()
>   File 
> "/home/mmccune/devel/pulp/test/unit/../../src/pulp/auditing.py", line 
> 141, in _record_event
>     _objdb.insert(event, safe=False, check_keys=False)
>   File "build/bdist.linux-x86_64/egg/pymongo/collection.py", line 245, 
> in insert
>     message.insert(self.__full_name, docs, check_keys, safe), safe)
> InvalidDocument: document too large - BSON documents are limited to 4 MB
>
> Note the trace is contained within the auditing insert() call.
>
> Turns out the Event class has both a 'params' field and a field called 
> 'action' but the action field also contained a copy of the params so 
> for a large Repo document you get an Event document that is 2-3X the 
> size of the actual parameter being audited.
>
> Jason is working to trim this down but the short story is, we aren't 
> hitting the 4MB limit because of the structure of our actual Repo 
> document, we are hitting it because of the way we were auditing the 
> parameters of a method call.
>
> Jason also in his latest update took out the repo from the param 
> logging in RepoApi.update()
>
>     @audit(params=[])
>     def update(self, repo_data):
>
> Also, to make people feel more confortable, with the fix to the 
> audit() call I was able to create a repo with 20,000 packages without 
> error whereas before it would bail with a repo with 5,000.
>
>

Ah nice find Mike. Thanks for tracking this down.

~ Prad




More information about the Pulp-list mailing list