Closed Bug 1702600 Opened 4 years ago Closed 2 years ago

[QM_TRY] Failures in dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize

Categories

(Core :: Storage: Quota Manager, defect, P2)

defect

Tracking

()

RESOLVED FIXED
103 Branch
Tracking Status
firefox102 --- fixed
firefox103 --- fixed

People

(Reporter: jstutte, Assigned: janv)

References

(Blocks 1 open bug)

Details

Attachments

(3 files)

Severity: -- → S3
Priority: -- → P2
Clients Sessions Hits Anchor Stack
27 31 32 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7094:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4101:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4164:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4202:NS_ERROR_ILLEGAL_VALUE
7 7 7 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7094:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4101:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4164:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4202:NS_ERROR_ILLEGAL_VALUE
7 8 8 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
5 8 8 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
5 12 12 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
3 3 3 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
3 3 3 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
2 2 2 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
1 2 2 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
lients Sessions Hits Anchor Stack
11 19 20 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
6 14 14 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
3 10 10 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
3 6 6 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
3 3 3 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
3 9 9 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
2 2 2 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
2 2 2 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7094:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4101:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4164:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4202:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
1 2 2 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
Clients Sessions Hits Anchor Stack
8 13 13 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
7 11 11 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
5 14 14 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
4 8 8 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
4 10 10 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
3 5 5 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
1 3 3 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
1 3 3 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE

It seems, we are not able to deserialize a usage value.

The expected format is:
"<Prefix><DecIntValue> <Prefix><DecIntValue> ..." with Prefix in "I","C","S","L"

Assuming that those values are only ever generated by ClientUsageArray::Serialize, I can see only two possible errors:

  1. The array string has been truncated during read or write right after a prefix character
  2. The integer value has been written with a different locale and 1000 separator than we use while reading

I was not able to look up easily, if 2. is possible starting from aText.AppendInt(clientUsage.value()); and Substring(token, 1).ToInteger(&rv);. But the error seems to happen quite often such that I would not expect it to be caused (only) by this (unlikely) edge case.

But also 1. seems scary and unlikely.

Flags: needinfo?(jvarga)
  1. possibility: What happens if we serialize a -1 that gets transformed into a uint64_tbefore serializing and then deserialized?
Clients Sessions Hits Anchor Stack
9 17 17 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
7 12 12 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7083:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4095:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4158:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4196:NS_ERROR_ILLEGAL_VALUE
5 9 9 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
4 13 13 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7083:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4095:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4158:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4196:NS_ERROR_ILLEGAL_VALUE
3 4 4 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
3 4 4 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
3 5 5 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7083:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4095:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4158:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4196:NS_ERROR_ILLEGAL_VALUE
3 5 5 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
3 4 4 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
2 3 3 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
2 9 9 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
1 9 10 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7083:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4095:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4158:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4196:NS_ERROR_ILLEGAL_VALUE
1 2 2 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7081:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4093:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4156:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4194:NS_ERROR_ILLEGAL_VALUE
Clients Sessions Hits Anchor Stack
23 82 84 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
10 17 18 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
7 16 16 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
7 10 10 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
3 7 7 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
3 3 3 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
2 3 3 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
Clients Sessions Hits Anchor Stack
24 44 45 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
24 40 40 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
5 17 17 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
4 8 8 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
2 5 5 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE

See bug 1708119, might be related to badly flushed files, too.

Clients Sessions Hits Anchor Stack
16 25 25 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
Clients Sessions Hits Anchor Stack
27 49 51 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
Clients Sessions Hits Anchor Stack
16 25 25 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
Clients Sessions Hits Anchor Stack
31 66 67 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
16 36 36 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
Clients Sessions Hits Anchor Stack
1 3 3 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
Clients Sessions Hits Anchor Stack
25 79 82 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
1 1 1 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7085:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4097:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4160:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4198:NS_ERROR_ILLEGAL_VALUE
Clients Sessions Hits Anchor Stack
6 16 17 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7093:NS_ERROR_ILLEGAL_VALUE
Blocks: 1711703
No longer blocks: 1702411

Taken from Attachment 9239371 [details].

Clients Sessions Hits Anchor Stack
6 19 19 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7122:NS_ERROR_ILLEGAL_VALUE

Taken from Attachment 9261549 [details].

Clients Sessions Hits Anchor Stack
60 134 134 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7367:NS_ERROR_ILLEGAL_VALUE
14 22 23 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7367:NS_ERROR_ILLEGAL_VALUE

Taken from Attachment 9263751 [details].

Clients Sessions Hits Anchor Stack
113 254 254 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7367:NS_ERROR_ILLEGAL_VALUE

We see this also as WARNING:

Clients Sessions Hits Anchor Stack
100 222 222 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7367:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4202:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4286:NS_ERROR_ILLEGAL_VALUE <- dom/quota/ActorsParent.cpp#4328:NS_ERROR_ILLEGAL_VALUE

Taken from Attachment 9265725 [details].

Clients Sessions Hits Anchor Stack
70 154 154 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7372:NS_ERROR_ILLEGAL_VALUE

Taken from Attachment 9267680 [details].

Clients Sessions Hits Anchor Stack
44 125 126 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7372:NS_ERROR_ILLEGAL_VALUE

Taken from Attachment 9268673 [details].

Clients Sessions Hits Anchor Stack
53 130 130 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7395:NS_ERROR_ILLEGAL_VALUE

Taken from Attachment 9273630 [details].

Clients Sessions Hits Anchor Stack
46 149 150 dom/quota/ActorsParent.cpp:ClientUsageArray::Deserialize dom/quota/ActorsParent.cpp#7459:NS_ERROR_ILLEGAL_VALUE
Assignee: nobody → jvarga
Status: NEW → ASSIGNED
Flags: needinfo?(jvarga)

This will enable writting a gtest for the class.

We use uint64_t for usages internally, but the deserializing function was using
ToInteger which can handle only 32bit integers. The problem became more visible
after increasing the group limit from 2GB to 10GB, but it was possible to
experience the problem even before that because persisted origins are not
limited by the group limit.

Depends on D148479

Pushed by jvarga@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5daf2a3470cc
Move ClientUsageArray class to separate source files; r=dom-storage-reviewers,jstutte
https://hg.mozilla.org/integration/autoland/rev/653fe656560d
Change ToInteger to ToInteger64 in ClientUsageArray::Deserialize; r=dom-storage-reviewers,jstutte
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 103 Branch

Comment on attachment 9280611 [details] [diff] [review]
Patch for Beta and ESR

Beta/Release Uplift Approval Request

  • User impact if declined: Users with large storage folder would still experience slow startups without this fix.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): It's a simple change, we just use a function which can handle bigger numbers.
  • String changes made/needed: None
  • Is Android affected?: Unknown

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: Serious performance regression which has been discovered in bug 1567863.
  • User impact if declined: Users with large storage folder would still experience slow startups without this fix.
  • Fix Landed on Version: 103
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): It's a simple change, we just use a function which can handle bigger numbers.
Attachment #9280611 - Flags: approval-mozilla-esr102?
Attachment #9280611 - Flags: approval-mozilla-beta?
Attachment #9279999 - Flags: approval-mozilla-beta?
Attachment #9279999 - Flags: approval-mozilla-beta?

Comment on attachment 9280611 [details] [diff] [review]
Patch for Beta and ESR

Approved for 102 beta 7, thanks.

Attachment #9280611 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9280611 - Flags: approval-mozilla-esr102?
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: