Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'web/issues')
-rw-r--r--web/issues54
1 files changed, 54 insertions, 0 deletions
diff --git a/web/issues b/web/issues
new file mode 100644
index 00000000000..abf91eeadfa
--- /dev/null
+++ b/web/issues
@@ -0,0 +1,54 @@
+<a name="wapi"></a>
+* ~/.wapi error message
+
+Q: What does the following error message mean?
+
+ <pre>
+ Failed to attach shared memory!
+ Falling back to non-shared handles
+ </pre>
+
+A: To properly implement the handle semantics expected by .NET
+ applications where a handle number is all that its needed to pass
+ a descriptor from one process to another and have it just work.
+
+ Handles are used to specify: files, events, locks, semaphores,
+ sockets, pipes and processes descriptors. So two Mono processes
+ can share any of those resources just by exchanging the handle
+ tokens (a number) between them.
+
+ This is accomplished by using a helper process that is launched by
+ the first Mono invocation (that is why you see two mono processes
+ running on your machine).
+
+ The various Mono processes communicate with each other with a local
+ file in the ~/.wapi directory (one per hostname, so this works fine
+ over NFS).
+
+ If the system crashes, or all of the Mono processes are killed
+ without a chance to shut down properly those files will remain
+ there, but there will no longer be an owner for them. If a new
+ Mono start up, it will notice that the file exists, but it will
+ fail to contact the helper process, issuing the above warning.
+
+Q: How do I fix the problem?
+
+A: If you are sure that no other Mono process is running, you can just
+ delete the contents of the ~/.wapi directory:
+
+<pre>
+ rm -i ~/.wapi/*
+</pre>
+
+ If you can not delete those files (because say, you have a running
+ Mono, you can disable the use of the shared handles setup by
+ setting the MONO_DISABLE_SHM environment variable as well:
+
+<pre>
+ # Notice: Highly discouraged
+ bash$ export MONO_DISABLE_SHM=1
+</pre>
+
+ The above is highly discouraged as that will make process execution
+ fail, and without that many things like XSP/ASP.NET or the C#
+ compiler's -pkg: support will not work.