Coder Social home page Coder Social logo

Plasma freezing about krohnkite HOT 16 OPEN

jjonw avatar jjonw commented on August 24, 2024
Plasma freezing

from krohnkite.

Comments (16)

esjeon avatar esjeon commented on August 24, 2024

Sorry, I’m on a trip now, and will return on 6 Feb. I’ll look into this issue as a top priority once I return.

from krohnkite.

hjri avatar hjri commented on August 24, 2024

I think this maybe has something to do with geometry-restricted windows and krohnkite entering an endless loop of trying to set window geometry only to fail, which triggers change in geometry and causes krohnkite to try again. Just a speculation, but i do see a spam of similar messages in kwin log and xorg eats cpu 100% with kwin eating 10% or so.

from krohnkite.

hjri avatar hjri commented on August 24, 2024

I did some more screwing around and it seems like the problem only occurs with severely geometry-restricted windows and window padding enabled?

Window gaps: 16 between, 8 around.
3 apps: Slack, Riot, Quassel. All have sane geometry restrictions (window can get 300px-ish wide)
Everything works normally
2 apps: Cantata (sane geometry restrictions), System Settings (window refuses to go smaller than half a screen)
Kwin enters busy loop, there's spam of Krohnkite trying to resize systemsettings
Works fine

Window gaps: all zero
Both cases work fine

from krohnkite.

jjonw avatar jjonw commented on August 24, 2024

Disabling gaps entirely solved the problem, thank you. Additionally, using only outer gaps (set to 3, inner set to 0) I have not experienced any freeze.

from krohnkite.

esjeon avatar esjeon commented on August 24, 2024

@hjri wrote:

krohnkite entering an endless loop of trying to set window geometry only to fail, which triggers change in geometry and causes krohnkite to try again.

I think your guess is correct. Krohnkite does have this problem. If both application and Krohnkite have different idea on what is correct geometry, they'll end up fighting each other.

@hjri wrote:

only occurs with severely geometry-restricted windows and window padding enabled

It's likely that removing gap prevented Krohnkite from squeezing those windows too hard.

Anyways, it seems like this issue is related to issue #25 ("Resizing doesn't check for other windows' geometry restrictions"), which is a regression fixed by 31a7f30.

from krohnkite.

hjri avatar hjri commented on August 24, 2024

I still get freezes/spam even without gaps on e9bea92

Running kwin_x11 eventually gives spam like this.

qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1027, 18, 893, 1182) to=Rect(1027, 18, 893, 394)
qml: setTimeout/callback: poolSize=1

from krohnkite.

esjeon avatar esjeon commented on August 24, 2024

@hjri, would you upload the whole log? I don't have enough information. Quassel limits only the minimum size (489x257), and, even when the limit is ignored, the application isn't supposed to freeze. It works flawless on my computer, for example.

from krohnkite.

hjri avatar hjri commented on August 24, 2024
qml: KROHNKITE: starting the script
qml: enableMonocleLayout : true
qml: enableSpreadLayout : false
qml: enableStairLayout : false
qml: enableTileLayout : true
qml: floatUtility : true
qml: layoutPerActivity : true
qml: layoutPerDesktop : true
qml: maximizeSoleTile : true
qml: mouseAdjustLayout : true
qml: noTileBorder : true
qml: screenGapBottom : 0
qml: screenGapLeft : 0
qml: screenGapRight : 0
qml: screenGapTop : 0
qml: tileLayoutGap : 0
qml: floatingClass: keepassxc
qml: ignoreClass: krunner,yakuake,spectacle,kded5,steam,plasmashell
qml: loadTile/create: client=KWin::Client(0x562dbf51e960) key=KWin::Client(0x562dbf51e960)
qml: loadTile/create: client=KWin::Client(0x562dbf563970) key=KWin::Client(0x562dbf563970)
qml: loadTile/create: client=KWin::Client(0x562dbf537110) key=KWin::Client(0x562dbf537110)
qml: loadTile/create: client=KWin::Client(0x562dbf52e3b0) key=KWin::Client(0x562dbf52e3b0)
qml: loadTile/create: client=KWin::Client(0x562dbf52c610) key=KWin::Client(0x562dbf52c610)
qml: loadTile/create: client=KWin::Client(0x562dbf515380) key=KWin::Client(0x562dbf515380)
qml: loadTile/create: client=KWin::Client(0x562dbf333270) key=KWin::Client(0x562dbf333270)
qml: loadTile/create: client=KWin::Client(0x562dbf473c10) key=KWin::Client(0x562dbf473c10)
qml: removeTile: key=KWin::Client(0x562dbf473c10)
qml: arrange: screenCount=1
qml: arrangeScreen: layout=StairLayout(nmaster=1, ratio=0.55) screen=0 tileables=4 visibles=4
qml: onTileGeometryChanged: tile=Tile(id=102760454, class=slack)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: onTileGeometryChanged: tile=Tile(id=85983233, class=riot)
qml: onTileGeometryChanged: tile=Tile(id=85983233, class=riot)
qml: onTileGeometryChanged: tile=Tile(id=85983233, class=riot)
qml: commitGeometry: client=KWin::Client(0x562dbf537110) from=QRect(1056, 412, 864, 425) to=Rect(1056, 412, 864, 394)
qml: onTileGeometryChanged: tile=Tile(id=148897798, class=dolphin)
qml: onTileGeometryChanged: tile=Tile(id=148897798, class=dolphin)
qml: onTileGeometryChanged: tile=Tile(id=148897798, class=dolphin)
qml: commitGeometry: client=KWin::Client(0x562dbf52e3b0) from=QRect(1056, 775, 864, 425) to=Rect(1056, 806, 864, 394)
qml: onTileGeometryChanged: tile=Tile(id=102760454, class=slack)
qml: setTimeout/callback: poolSize=1
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
qml: setTimeout/callback: poolSize=2
qml: setTimeout/callback: poolSize=3
qml: setTimeout/callback: poolSize=4
qml: setTimeout/callback: poolSize=5
qml: setTimeout/callback: poolSize=6
qml: setTimeout/callback: poolSize=7
qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 5115, resource id: 12583467, major code: 3 (GetWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 9 (BadDrawable), sequence: 5116, resource id: 12583467, major code: 14 (GetGeometry), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 5121, resource id: 12583492, major code: 3 (GetWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 9 (BadDrawable), sequence: 5122, resource id: 12583492, major code: 14 (GetGeometry), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 5127, resource id: 12583517, major code: 3 (GetWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 9 (BadDrawable), sequence: 5128, resource id: 12583517, major code: 14 (GetGeometry), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 5133, resource id: 12583542, major code: 3 (GetWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 9 (BadDrawable), sequence: 5134, resource id: 12583542, major code: 14 (GetGeometry), minor code: 0
qml: onTileGeometryChanged: tile=Tile(id=102760454, class=slack)
qml: setTimeout/callback: poolSize=7
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=4
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1

after which there's just spam of thing i posted previously interleaved with badwindow/baddrawable which i think are unrelated to krohnkite.

also plasmashell is in ignored list because i was trying to debug another bug that made kwin freeze when plasma crashed.

from krohnkite.

esjeon avatar esjeon commented on August 24, 2024

@hjri Hmm, I can't reproduce the bug. Would you file a new issue? I need version info and steps to reproduce the bug. At least, Quassel works fine on my up-to-date Arch installation, at it never tries to resize its main window.

from krohnkite.

zyf0330 avatar zyf0330 commented on August 24, 2024

Is there any update?

from krohnkite.

esjeon avatar esjeon commented on August 24, 2024

@zyf0330 Sorry, the development has been stalled for a while. I'll come back to this shortly.

In the mean time, would you describe the specific problem you're having? Freezing is just a symptom, and can be caused by many different reasons. More info is definitely better.

from krohnkite.

zyf0330 avatar zyf0330 commented on August 24, 2024

from krohnkite.

hjri avatar hjri commented on August 24, 2024

IIRC workaround is to disable the "hide titlebar for maximized windows" script/option. KWin does have obscure option to do that without scripts but there's no GUI for it.

I had this problem and solved it somehow.

from krohnkite.

zyf0330 avatar zyf0330 commented on August 24, 2024

@hjri I will try, thanks.

from krohnkite.

zyf0330 avatar zyf0330 commented on August 24, 2024

@hjri This way almost solves this problem, you are right. Freezing still occurs sometimes but restores back to normal quickly.

from krohnkite.

zyf0330 avatar zyf0330 commented on August 24, 2024

After restart computer, freeze occurs. Everytime do plasmashell restart, freeze disappears a period of time then appears, there is no regular pattern.

from krohnkite.

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.