sample three.js bug. This should have rendered a single triangle. Click anywhere to add a second triangle, which will stir bug.

Correct behaviour is that a second triangle appears, but instead the first disappears.

revision 59 ...
Reusing a BufferGeometry object in a Mesh causes an error.
Using a BufferGeometry in a Mesh goes fine, but using the same geometry in a second Mesh causes error.

Then the first mesh is processed, attribute.array is sent to the GL buffer, and attribute.array is (sensibly) cleared.

But if an attempt is made to reuse the BufferGeometry for the second Mesh instance, there is a second attempt to turn the BufferGeometry into GL resources. This (a) should not happen, and (b) fails because the array is already set to null.
(three.js line 20791) _gl.bufferData( type, attribute.array, _gl.STATIC_DRAW );

This can be fixed by a check "if (!attribute.buffer) {" once the attribute has been established in line 20780. It may be better to have initialization flags and fix it at a slightly higher level??? I'm not familiar enough with the codebase to apply a fix myself.

For sample, see