**System Information**
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 446.14
**Blender Version**
Broken: version: 3.0.0 Alpha, branch: master, commit date: 2021-06-21 16:25, hash: `rBb11a463e4fcd`
Worked: Unsure; 2.93 exhibits the same behavior
**Short description of error**
If there are two edges, one edge is of zero length, that edge is positioned on the X axis, and that edge is selected (in edge-select mode), running the //Select Mirror// operator causes an assert failure.
**Exact steps for others to reproduce the error**
1. Load the attached file
2. Go into Edit mode, with edge selection
3. Select the visible edge
4. Invert the selection, so that the zero-length edge is selected
5. Run the //Select Mirror// operation (over the X-axis, if that's not the default for you)
6. Assert fails
{F10187164}
The release build does not crash.
The zero-length edge must be positioned on the axis that we're mirroring over. So, in the example below, mirroring over X or Z causes a crash, but Y does not:
{F10187162}
(the zero-length edge is the single dot in the top right corner)
In a release build, the zero-length edge remains selected after running the operator. If the edge is in the wrong position, it will get deselected in both the release build and the debug build.
Another edge must be present. A single zero-length edge doesn't experience this bug. The other edge's exact position doesn't seem to matter, but it has to be there.
The presence of other edges can also //prevent// the assert failure, so it's very specific!
This can also happen if both edges are zero-length. The mesh data validates without any problems.
Relevant assert:
```
BLI_assert failed: D:\blender-git\blender\source\blender\bmesh\intern\bmesh_query.c:2002, BM_edge_exists(), at 'v_a != v_b'
```
Stacktrace: P2194