Intermittent Buffer Text Display Bug


#1

Sometimes when I start atom, or the window is reloaded, or even sometimes when I switch to another open tab, the contents of some files are displayed all bunched up in a small segment near the top of the pane.

Reproduction Steps:

I haven’t been able to consistently reproduce this, but here are the common circumstances:

  • Have multiple panes open, with the same file open in a tab of multiple panes
  • Cause a file to be reloaded/reprocessed (reload the window, open a file in some pane, etc.)

Expected behavior:

The pane displays the contents of the file

Observed behavior:

The pane displays all text tiles on top of each other, with missing/malformed CSS attributes such as width: 0px;, and missing the translate3D attribute that controls scrolling position of the tile.

Screenshots and GIFs

(Sorry, I took a screen recording with quicktime rather than licecap)
recording of the problem

A capture without safe mode:

An example of how the tile divs look normally:

Version information:

mac OS  : 10.12.1
Atom    : 1.12.6
Electron: 1.3.9
Chrome  : 52.0.2743.82
Node    : 6.5.0

Installed packages:

Community Packages (28) /Users/polygon/.atom/packages
├── atom-html-preview@0.1.22
├── behave-theme@1.6.0
├── character-table@0.4.3
├── custom-title@1.0.1
├── docblockr@0.8.7
├── file-icons@1.7.25
├── git-plus@5.27.0
├── hex@0.6.2
├── language-cpu12@1.4.1
├── markdown-scroll-sync@2.1.2
├── markdown-themeable-pdf@1.2.0
├── minimap@4.25.7
├── minimap-cursorline@0.2.0
├── minimap-find-and-replace@4.5.1
├── minimap-git-diff@4.3.1
├── minimap-split-diff@0.3.2
├── multi-cursor-plus@1.0.3
├── package-cop@0.2.10
├── pdf-view@0.53.0
├── project-manager@3.3.3
├── remember-file-positions@0.2.2
├── spacegray-eighties-ui@1.2.0
├── split-diff@1.1.0
├── symbol-gen@1.3.1
├── sync-settings@0.7.2
├── table-editor@0.2.2
├── term3@0.22.1
└── typewriter-scroll@1.0.0

└── (empty)

Additional information:

  • Problem can be reproduced in safe mode: Yes
  • Problem started happening recently, didn’t happen in an older version of Atom: No
  • Problem can be reliably reproduced, doesn’t happen randomly: No
  • Problem happens with all files and projects, not only some files or projects: Yes

The only way to solve this problem seems to be closing that tab in that pane, and then opening it again. Reloading the window doesn’t solve the problem, and most of the time I can completely restart atom without any change (that’s actually how I was able to capture this in safe mode). I did eventually run --clear-window-state, which “solved” the problem insofar as all the tile display issues had disappeared.

In the recording, you can see that I have the inspector open, with the view focused on the tile elements of the offending pane. You can see that if I scroll around in the file, the tiles change but they are still rendered on top of each other. I then switch to an unaffected pane, find the corresponding elements in the inspector, and scroll. You can see that the elements in the properly rendering pane have many more inline attributes than the first ones, including a non-zero width, and a translate3d attribute that controls their vertical positions.

I don’t pretend to understand the structure of the atom source code, but the only place I found that mentioned translate3d and was related to tiling lines was this file.

This is a bug I have lived with for a while, and I finally decided to write this report. I hope this helps!