I have spent a few hours creating a test case as simple as possible. The problem is I keep on seeing different results, and it often doesn't brake (but sometimes it does). Although not the simplest way, but the most effective way to test this is by using Apache ACE to deploy bundles.
1) Download and install ACE (ace.apache.org).
2) Add two system properties to glass fish (e.g. in the domain.xml)
<system-property name="discovery" value="http://localhost:8080"></system-property>
<system-property name="identification" value="glassfish"></system-property>
The discovery url is the url where ACE is running.
3) Upload an EJB bundle to ACE and deploy it to GF
4) Upload a new version of the EJB bundle (just change the filename and version in the manifest)
5) "Save" the new version in the ACE UI so it will be pushed to GF
6) The EJB bundle is now deadlocked in "stopping" in most cases, if not, just update again.
Sorry the test case isn't that easy to execute, but as marrs said it is often hard to spot concurrency issues from automated tests because timings are very different.
You can use the ACE management agent without ACE too by using a file url in the discovery property, but this test fails a lot less often (on my machine). It may be hard to reproduce the issue that way. The file url should specify a directory where you "install" bundles. Start with one EJB bundle and let it deploy, then add a second bundle to the directory with a higher version in the manifest.
<system-property name="discovery" value="file:///Users/paul/Desktop/glassfish/"></system-property>