ASSERTION: URI is empty: '!aURI.IsEmpty()', file /TB-NEW/TB-3HG/new-src/mozilla/rdf/base/src/nsRDFService.cpp, line 884

NEW
Unassigned

Status

Thunderbird
General
5 years ago
9 months ago

People

(Reporter: ISHIKAWA, Chiaki, Unassigned)

Tracking

(Blocks: 1 bug)

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments)

(Reporter)

Description

5 years ago
Created attachment 701405 [details]
excerpt from mozmill run of local DEBUG BUILD of TB

While testing thunderbird (debug build of comm-central source) by
running "make mozmill" locally, I noticed many ASSERTION messages.
One of them is the following.

###!!! ASSERTION: URI is empty: '!aURI.IsEmpty()', file /TB-NEW/TB-3HG/new-src/mozilla/rdf/base/src/nsRDFService.cpp, line 884

I am attaching the excerpts from the session log.
The assertion appears four times.

The first one seems to appear even during the overall setup of the mozmill (?)

The other three appears during the execution of tests for account setup.

I am attaching the raw log, and the other that is run through  
comm-central/mozilla/tools/rb/fix-linux-stack.pl

It seems that the call is made from JavaScript source somewhere (?)
and so hard to fix this on the caller side.

Since this condition is properly handled as
NS_IMETHODIMP
RDFServiceImpl::GetResource(const nsACString& aURI, nsIRDFResource** aResource)
{
    // Sanity checks
    NS_PRECONDITION(aResource != nullptr, "null ptr");
    NS_PRECONDITION(!aURI.IsEmpty(), "URI is empty");
    if (! aResource)
        return NS_ERROR_NULL_POINTER;
    if (aURI.IsEmpty())
        return NS_ERROR_INVALID_ARG;

Maybe can we simply remove the NS_PRECONDITION statement to reduce the
clutter in mozmill session log (?)

If someone wants to pursue where this call originates, I am willing to help but please suggest how I can possibly pursue this (the stack trace
doesn't seem to help in this condition.)
(Reporter)

Updated

5 years ago
Blocks: 826745
(Reporter)

Comment 1

5 years ago
Created attachment 701406 [details]
The same session log with fixed stack trace.

Sanitized stack trace using comm-central/mozilla/tools/rb/fix-linux-stack.pl
(Reporter)

Comment 2

5 years ago
Created attachment 704503 [details] [diff] [review]
a work-inprogress patch for nsRDFService.cpp

Since the call to GetService() is made with empty aURI from JavaScript (not sure
which one) and so this should not be an exceptional case, and 
this condition is checked, I suggest that NS_PRECONDITION() check be removed.

Updated

5 years ago
Component: Untriaged → General

Updated

3 years ago
Duplicate of this bug: 1158469

Comment 4

2 years ago
Still happens with:

[12845] ###!!! ASSERTION: URI is empty: '!aURI.IsEmpty()', file /var/tmp/portage/www-client/seamonkey-2.39/work/seamonkey-2.39/mozilla/rdf/base/nsRDFService.cpp, line 831
(Reporter)

Comment 5

2 years ago
(In reply to Martin Mokrejs from comment #4)
> Still happens with:
> 
> [12845] ###!!! ASSERTION: URI is empty: '!aURI.IsEmpty()', file
> /var/tmp/portage/www-client/seamonkey-2.39/work/seamonkey-2.39/mozilla/rdf/
> base/nsRDFService.cpp, line 831

Maybe I should get the calling JS in a few places fixed...
Calling this function with empty URI is definitely wrong, at least waste of CPU cycle.

Comment 6

9 months ago
[7004] ###!!! ASSERTION: URI is empty: '!aURI.IsEmpty()', file /scratch/var/tmp/portage/www-client/seamonkey-2.46/work/seamonkey-2.46/mozilla/rdf/base/nsRDFService.cpp, line 823

Comment 7

9 months ago
Current duplicates: #509336 and #299331
(Reporter)

Comment 8

9 months ago
I will get to this and other pending bugs once my main development PC replacement is finished :-(
(I never realized there are so many different files of config information that must be moved ...)
You need to log in before you can comment on or make changes to this bug.