Giter VIP home page Giter VIP logo

Comments (13)

gabaum10 avatar gabaum10 commented on May 29, 2024

I should mention, this is a massive project with hundreds of components and supporting JS files. Is there a legit memory leak somewhere in the plugin code?

from eslint-plugin-vuetify.

KaelWD avatar KaelWD commented on May 29, 2024

Possible EventEmitter memory leak detected. 11 VElement listeners added

vuejs/eslint-plugin-vue#895

Is there a legit memory leak somewhere in the plugin code?

It's possible, but that message doesn't necessarily indicate it. It's used in the Vuetify monorepo with >800 components without a problem.
Can you try installing vue-eslint-parser@^6.0.4 and running TIMING=1 yarn lint?

Oh yeah I'm assuming you're using the latest versions of eslint and eslint-plugin-vue too ofc.

from eslint-plugin-vuetify.

gabaum10 avatar gabaum10 commented on May 29, 2024

@KaelWD alrigth so I upgraded that stuff and ran the TIMING=1 yarn lint. No luck. It's still throwing the same error.

Here is the output:

.
.
.
(node:31367) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 VElement listeners added. Use emitter.setMaxListeners() to increase limit
(node:31367) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 VElement listeners added. Use emitter.setMaxListeners() to increase limit
Rule                         | Time (ms) | Relative
:----------------------------|----------:|--------:
import/no-duplicates         |  2532.719 |    28.6%
vue/no-duplicate-attributes  |  1753.095 |    19.8%
vue/script-indent            |   740.195 |     8.4%
no-duplicate-case            |   548.585 |     6.2%
no-unused-vars               |   243.507 |     2.8%
keyword-spacing              |   137.541 |     1.6%
no-extra-parens              |   129.947 |     1.5%
key-spacing                  |   125.033 |     1.4%
no-unmodified-loop-condition |   103.327 |     1.2%
camelcase                    |    95.144 |     1.1%
error Command failed with exit code 1.

from eslint-plugin-vuetify.

gabaum10 avatar gabaum10 commented on May 29, 2024

What's interesting is the lint rules actually do get checked and correctly error, way up in the terminal output. I output it to a file and I can see them all. However, when I try to run the command with the --fix command, the JS heap overflows.

output.txt

Do I need to specify anything to use the local version of vue-eslint-parser, or will the eslint-plugin-vue automatically pick it up? (talk about a confusing set of plugins that is.) It looks like the eslint-plugin-vue is dependent on the vue-eslint-parser? Is that correct?

For the record, this is what I'm seeing when I try to run --fix:

<--- Last few GCs --->

[1562:0x417ccc0]    28351 ms: Mark-sweep 1357.5 (1450.7) -> 1343.1 (1451.9) MB, 741.2 / 0.0 ms  (average mu = 0.158, current mu = 0.070) allocation failure scavenge might not succeed
[1562:0x417ccc0]    29146 ms: Mark-sweep 1358.8 (1451.9) -> 1343.9 (1452.4) MB, 728.5 / 0.0 ms  (average mu = 0.122, current mu = 0.083) allocation failure scavenge might not succeed


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x35f672d5be1d]
Security context: 0x34084ec9e6e9 <JSObject>
    1: split [0x34084ec906c9](this=0x34084ecc2889 <String[4]: init>,0x32904e186629 <String[1]: .>)
    2: matches [0x22bb5a6fe9e1] [/home/gabaum10/Development/gws/veoci-client/node_modules/esquery/esquery.js:~50] [pc=0x35f672ddb46c](this=0x21ea7551ad81 <JSGlobal Object>,node=0x3dbe23dd8691 <Node map = 0x2902a03a8b1>,selector=0x3332d4962951 <Object map = 0x29...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x8dc510 node::Abort() [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
 2: 0x8dc55c  [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
 3: 0xad9b5e v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
 4: 0xad9d94 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
 5: 0xec7bf2  [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
 6: 0xec7cf8 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
 7: 0xed3dd2 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
 8: 0xed4704 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
 9: 0xed7371 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
10: 0xea03c8 v8::internal::Factory::AllocateRawWithAllocationSite(v8::internal::Handle<v8::internal::Map>, v8::internal::PretenureFlag, v8::internal::Handle<v8::internal::AllocationSite>) [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
11: 0xead4c5 v8::internal::Factory::NewJSArray(v8::internal::ElementsKind, v8::internal::PretenureFlag) [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
12: 0xead5d1 v8::internal::Factory::NewJSArrayWithElements(v8::internal::Handle<v8::internal::FixedArrayBase>, v8::internal::ElementsKind, int, v8::internal::PretenureFlag) [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
13: 0x1180e9c v8::internal::Runtime_StringSplit(int, v8::internal::Object**, v8::internal::Isolate*) [/home/gabaum10/.nvm/versions/node/v10.15.3/bin/node]
14: 0x35f672d5be1d 
Aborted (core dumped)
error Command failed with exit code 134.

from eslint-plugin-vuetify.

gabaum10 avatar gabaum10 commented on May 29, 2024

Looks potentially related to this? vuejs/eslint-plugin-vue#929

from eslint-plugin-vuetify.

gabaum10 avatar gabaum10 commented on May 29, 2024

Question: what version of Node are you running?

I'm starting to suspect those warnings don't really have anything to do with the underlying problem. At least not directly. The key is I can't run --fix. The linting does indeed run. I verified in our CI environment where all the output is available. The warnings just look like noise.

from eslint-plugin-vuetify.

gabaum10 avatar gabaum10 commented on May 29, 2024

Confirmed: Those are just noise. The OOM failure was because I needed to allot some more to the node runtime. I guess including the vuetify eslint plugin pushed it over the edge. Once I did that, the --fix worked and it went along its merry way. I think your assessment is correct in the eslint-plugin-vue is using the incorrect version of vue-eslint-parser.

from eslint-plugin-vuetify.

KaelWD avatar KaelWD commented on May 29, 2024

Ah righto that's a bit of a mess. I can run a memory profile and see if I'm doing something dumb to cause the OOM.

from eslint-plugin-vuetify.

185driver avatar 185driver commented on May 29, 2024

I think I'm experiencing this issue too, though my error message is slightly different:

yarn lint
yarn run v1.16.0
$ vue-cli-service lint
 DONE  No lint errors found!
(node:5960) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 VElement listeners added. Use emitter.setMaxListeners() to increase limit
(displayed x 12 times)
Done in 6.72s.

There's no error when eslint-plugin-vuetify is disabled. I'll plan to wait for an update to eslint-plugin-vue to see if that resolves it.

from eslint-plugin-vuetify.

KaelWD avatar KaelWD commented on May 29, 2024

You can safely ignore that one, it doesn't affect anything.

from eslint-plugin-vuetify.

annymosse avatar annymosse commented on May 29, 2024

as i tried to use this plugin i got it's impossible to upgrade from 1.5.x to 2.x, as a result of that im doing all the upgrade manually , coz i'm getting error after error even i left my project a weeks to resolve that problem , its much better to take these weeks to do it manually and save a time.

from eslint-plugin-vuetify.

Ruinevo avatar Ruinevo commented on May 29, 2024

i have a similar problem.

If i delete 'vue/html-indent': ['error', 2] - the problem is being solved

from eslint-plugin-vuetify.

KaelWD avatar KaelWD commented on May 29, 2024

Again, the MaxListenersExceededWarning can be safely ignored.

from eslint-plugin-vuetify.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.