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

issues « web - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: abf91eeadfa7345501468745bc47766e3229dc8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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.