Ah I see … I think I refreshed the window before the source finished saving 
When you’re not using index buffer, each triangle needs 3 vertices. So for 6 triangles, you need 18 vertices. Try this:
var mesh = new pc.Mesh(this.app.graphicsDevice);
var positions = [
0, 0, 0, // center pos
-0.5 * outerRadius, 0, innerRadius, // top left
0.5 * outerRadius, 0, innerRadius, // top right
0, 0, 0, // center pos
0.5 * outerRadius, 0, innerRadius, // top right
outerRadius, 0, 0, // right
0, 0, 0, // center pos
outerRadius, 0, 0, // right
0.5 * outerRadius, 0, -innerRadius, // bottom right
0, 0, 0, // center pos
0.5 * outerRadius, 0, -innerRadius, // bottom right
-0.5 * outerRadius, 0, -innerRadius, // bottom left
0, 0, 0, // center pos
-0.5 * outerRadius, 0, -innerRadius, // bottom left
-outerRadius, 0, 0, // left
0, 0, 0, // center pos
-outerRadius, 0, 0, // left
-0.5 * outerRadius, 0, innerRadius, // top left
];
var normals = [
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0,
0, 1, 0
];
mesh.setPositions(positions);
mesh.setNormals(normals);
mesh.update();