less.js: "Allocation failed - JavaScript heap out of memory" when using incorrect CSS value with a comment
OS:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
Less.js version:
$ lessc --version
lessc 3.10.3 (Less Compiler) [JavaScript]
main.less:
.test {
color: #fffff /* comment */;
}
(note that the color
property value is incorrect)
Expected result (you can get this if you remove the comment):
$ lessc main.less main.css
ParseError: Unrecognised input in /home/flash/main.less on line 2, column 18:
1 .test {
2 color: #fffff;
3 }
Actual result:
$ lessc main.less main.css
<--- Last few GCs --->
[22053:0x2c329a0] 7929 ms: Mark-sweep 1268.5 (1442.5) -> 1259.4 (1443.0) MB, 255.8 / 0.0 ms (average mu = 0.140, current mu = 0.043) allocation failure scavenge might not succeed
[22053:0x2c329a0] 8195 ms: Mark-sweep 1271.2 (1443.0) -> 1263.0 (1445.0) MB, 255.5 / 0.0 ms (average mu = 0.091, current mu = 0.039) allocation failure scavenge might not succeed
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 0x0f92c181e6e1 <JSObject>
0: builtin exit frame: defineProperty(this=0x0f92c1804631 <JSFunction Object (sfi = 0x22999e78e301)>,0x25b50f3f19f9 <Object map = 0x19dee123a331>,0x2491b7d79d19 <String[15]: currentFileInfo>,0x25b50f3f1959 <Comment map = 0xb9e083900c1>,0x0f92c1804631 <JSFunction Object (sfi = 0x22999e78e301)>)
1: expression [0x1e31b86c9279] [/home/flash/.nvm/versions/node/v10.15.2/lib/node_modules/less/...
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0x8dc1c0 node::Abort() [node]
2: 0x8dc20c [node]
3: 0xad60ae v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
4: 0xad62e4 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
5: 0xec3972 [node]
6: 0xec3a78 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [node]
7: 0xecfb52 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [node]
8: 0xed0484 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
9: 0xed30f1 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [node]
10: 0xe9c1e6 v8::internal::Factory::AllocateRawArray(int, v8::internal::PretenureFlag) [node]
11: 0xe9ca6a v8::internal::Factory::NewFixedArrayWithFiller(v8::internal::Heap::RootListIndex, int, v8::internal::Object*, v8::internal::PretenureFlag) [node]
12: 0xe9cb10 v8::internal::Handle<v8::internal::FixedArray> v8::internal::Factory::NewFixedArrayWithMap<v8::internal::FixedArray>(v8::internal::Heap::RootListIndex, int, v8::internal::PretenureFlag) [node]
13: 0xfdc029 v8::internal::HashTable<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::New(v8::internal::Isolate*, int, v8::internal::PretenureFlag, v8::internal::MinimumCapacity) [node]
14: 0xfdc089 v8::internal::BaseNameDictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::New(v8::internal::Isolate*, int, v8::internal::PretenureFlag, v8::internal::MinimumCapacity) [node]
15: 0x10014ee v8::internal::JSObject::MigrateToMap(v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::Map>, int) [node]
16: 0xfb4c42 v8::internal::LookupIterator::TransitionToAccessorProperty(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyAttributes) [node]
17: 0xfca59b v8::internal::JSObject::DefineAccessor(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyAttributes) [node]
18: 0xff1520 v8::internal::JSReceiver::ValidateAndApplyPropertyDescriptor(v8::internal::Isolate*, v8::internal::LookupIterator*, bool, v8::internal::PropertyDescriptor*, v8::internal::PropertyDescriptor*, v8::internal::ShouldThrow, v8::internal::Handle<v8::internal::Name>) [node]
19: 0xff8c16 v8::internal::JSReceiver::OrdinaryDefineOwnProperty(v8::internal::LookupIterator*, v8::internal::PropertyDescriptor*, v8::internal::ShouldThrow) [node]
20: 0xff90b8 v8::internal::JSReceiver::OrdinaryDefineOwnProperty(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyDescriptor*, v8::internal::ShouldThrow) [node]
21: 0x1008722 v8::internal::JSReceiver::DefineOwnProperty(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyDescriptor*, v8::internal::ShouldThrow) [node]
22: 0x1008cfd v8::internal::JSReceiver::DefineProperty(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) [node]
23: 0xbad634 v8::internal::Builtin_ObjectDefineProperty(int, v8::internal::Object**, v8::internal::Isolate*) [node]
24: 0x3e5aaf25bf7d
Aborted (core dumped)
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 15 (11 by maintainers)
@rgroothuijsen Can you provide a PR, with your test cases along with a write-up of your findings? It would be much appreciated.