Issue in java hot spot when more than user request for services

0

I am working with jboss AS6 also developed some services using jbossws, when multiple user request for services , i am getting error as follows

 A fatal error has been detected by the Java Runtime Environment 

How to detect root and cause of this error , is that with kind of error occurred because of issue in java jvm or issue in user code or inphysical memory

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d91d7e1, pid=4164, tid=5012
#
# JRE version: 6.0_26-b03
# Java VM: Java HotSpot(TM) Client VM (20.1-b02 mixed mode windows-x86 )
# Problematic frame:
# V  [jvm.dll+0x7d7e1]
#

---------------  T H R E A D  ---------------

Current thread (0x0194d000):  VMThread [stack: 0x444d0000,0x44520000] [id=5012]

siginfo: ExceptionCode=0xc0000005, reading address 0x8509bf71

Registers:
EAX=0x00000028, EBX=0x34345868, ECX=0x00000000, EDX=0x8509bf09
ESP=0x4451f904, EBP=0x4451f91c, ESI=0x14548278, EDI=0x145482a4
EIP=0x6d91d7e1, EFLAGS=0x00010293

Top of Stack: (sp=0x4451f904)
0x4451f904:   150410c0 000003fe 00000003 34345870
0x4451f914:   145482b0 00000003 4451f93c 6d9d8773
0x4451f924:   14548298 6db10ef0 342d7c88 022bff20
0x4451f934:   00000003 4451f948 4451f948 6d9d8b22
0x4451f944:   6db10ef0 4451f95c 6d909b14 6db1f138
0x4451f954:   6db10ef0 022bff20 4451f978 6d906019
0x4451f964:   6db10ef0 00000000 6db10ef0 6db10ef0
0x4451f974:   022bff20 4451f9b8 6d900420 00000001 

Instructions: (pc=0x6d91d7e1)
0x6d91d7c1:   16 8a 0d b9 5b b0 6d 84 c9 8b c8 75 08 80 e1 07
0x6d91d7d1:   80 f9 01 eb 19 83 e1 07 83 f9 05 74 24 8b 56 04
0x6d91d7e1:   8b 52 68 83 e2 07 80 fa 05 74 0c 83 f9 01 75 07
0x6d91d7f1:   a9 80 ff ff ff 74 0a 50 56 e8 31 ab 0b 00 83 c4 


Register to memory mapping:

EAX=0x00000028 is an unknown value
EBX=0x34345868 is an oop
{instance class} 
 - klass: {other class}
ECX=0x00000000 is an unknown value
EDX=0x8509bf09 is an unknown value
ESP=0x4451f904 is an unknown value
EBP=0x4451f91c is an unknown value
ESI=0x14548278 is an oop
java.lang.String 
 - klass: 'java/lang/String'
EDI=0x145482a4 is an oop
java.util.HashMap$Entry 
 - klass: 'java/util/HashMap$Entry'


Stack: [0x444d0000,0x44520000],  sp=0x4451f904,  free space=318k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x7d7e1]
V  [jvm.dll+0x138773]
V  [jvm.dll+0x138b22]
V  [jvm.dll+0x69b14]
V  [jvm.dll+0x66019]
V  [jvm.dll+0x60420]
V  [jvm.dll+0x621f0]
V  [jvm.dll+0x626a0]
V  [jvm.dll+0x611ea]
V  [jvm.dll+0x685c2]
V  [jvm.dll+0x5fe78]
V  [jvm.dll+0x60271]
V  [jvm.dll+0x13b1a0]
V  [jvm.dll+0x11da73]
V  [jvm.dll+0x11cd4e]
V  [jvm.dll+0x11d070]
V  [jvm.dll+0x11d472]
V  [jvm.dll+0x1411ac]
C  [msvcr71.dll+0x9565]  endthreadex+0xa0
C  [kernel32.dll+0x4d309]  BaseThreadInitThunk+0x12
C  [ntdll.dll+0x41603]  RtlInitializeExceptionChain+0x63
C  [ntdll.dll+0x415d6]  RtlInitializeExceptionChain+0x36

VM_Operation (0x4819ec04): GenCollectForPermanentAllocation, mode: safepoint, requested by thread 0x46083800


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x46083800 JavaThread "http-localhost%2F127.0.0.1-8080-4" daemon [_thread_blocked, id=5780, stack(0x48150000,0x481a0000)]
  0x46083000 JavaThread "http-localhost%2F127.0.0.1-8080-3" daemon [_thread_blocked, id=2604, stack(0x48100000,0x48150000)]
  0x46082c00 JavaThread "http-localhost%2F127.0.0.1-8080-2" daemon [_thread_blocked, id=1912, stack(0x480b0000,0x48100000)]
  0x46082400 JavaThread "JMX server connection timeout 84" daemon [_thread_blocked, id=5748, stack(0x48060000,0x480b0000)]
  0x46082000 JavaThread "RMI TCP Connection(idle)" daemon [_thread_blocked, id=2480, stack(0x48010000,0x48060000)]
  0x46081800 JavaThread "JMX server connection timeout 82" daemon [_thread_blocked, id=4228, stack(0x47fc0000,0x48010000)]
  0x46081000 JavaThread "RMI TCP Connection(2)-127.0.0.1" daemon [_thread_in_native, id=5896, stack(0x47f70000,0x47fc0000)]
  0x46080c00 JavaThread "RMI Scheduler(0)" daemon [_thread_blocked, id=5856, stack(0x47f20000,0x47f70000)]
  0x46080400 JavaThread "RMI TCP Connection(idle)" daemon [_thread_blocked, id=5256, stack(0x44da0000,0x44df0000)]
  0x46080000 JavaThread "pool-6-thread-2" [_thread_blocked, id=4364, stack(0x44950000,0x449a0000)]
  0x45fe8800 JavaThread "ajp-localhost%2F127.0.0.1-8009-Acceptor-0" daemon [_thread_in_native, id=956, stack(0x47ed0000,0x47f20000)]
  0x45fe8400 JavaThread "ajp-localhost%2F127.0.0.1-8009-Poller" daemon [_thread_blocked, id=4496, stack(0x47e80000,0x47ed0000)]
  0x45fe7c00 JavaThread "http-localhost%2F127.0.0.1-8080-1" daemon [_thread_blocked, id=5064, stack(0x47e30000,0x47e80000)]
  0x45fe7800 JavaThread "http-localhost%2F127.0.0.1-8080-Acceptor-0" daemon [_thread_in_native, id=3024, stack(0x47de0000,0x47e30000)]
  0x45fe7000 JavaThread "http-localhost%2F127.0.0.1-8080-Poller" daemon [_thread_blocked, id=1844, stack(0x47d90000,0x47de0000)]
  0x45fe6c00 JavaThread "HDScanner" [_thread_blocked, id=3732, stack(0x47d40000,0x47d90000)]
  0x45fe6400 JavaThread "xnio-pool4-5" [_thread_in_native, id=1384, stack(0x47cf0000,0x47d40000)]
  0x45fe5c00 JavaThread "xnio-pool4-4" [_thread_in_native, id=2756, stack(0x47ca0000,0x47cf0000)]
  0x45fe5800 JavaThread "xnio-pool4-3" [_thread_in_native, id=1652, stack(0x47c50000,0x47ca0000)]
  0x45fe5000 JavaThread "xnio-pool4-2" [_thread_in_native, id=5308, stack(0x47c00000,0x47c50000)]
  0x46224800 JavaThread "xnio-pool4-1" [_thread_in_native, id=5572, stack(0x47bb0000,0x47c00000)]
  0x46224000 JavaThread "JCA PoolFiller" daemon [_thread_blocked, id=736, stack(0x47b60000,0x47bb0000)]
  0x46223c00 JavaThread "HSQLDB Timer @8de47d" daemon [_thread_blocked, id=5504, stack(0x47b10000,0x47b60000)]
  0x46223400 JavaThread "JBossQuartzScheduler_QuartzSchedulerThread" [_thread_blocked, id=5876, stack(0x47ac0000,0x47b10000)]
  0x46223000 JavaThread "JBossQuartzScheduler_Worker-10" [_thread_blocked, id=2228, stack(0x47a70000,0x47ac0000)]
  0x46222800 JavaThread "JBossQuartzScheduler_Worker-9" [_thread_blocked, id=4208, stack(0x47a20000,0x47a70000)]
  0x46222400 JavaThread "JBossQuartzScheduler_Worker-8" [_thread_blocked, id=5468, stack(0x479d0000,0x47a20000)]
  0x46221c00 JavaThread "JBossQuartzScheduler_Worker-7" [_thread_blocked, id=4632, stack(0x47980000,0x479d0000)]
  0x46221400 JavaThread "JBossQuartzScheduler_Worker-6" [_thread_blocked, id=4188, stack(0x47930000,0x47980000)]
  0x46221000 JavaThread "JBossQuartzScheduler_Worker-5" [_thread_blocked, id=5416, stack(0x478e0000,0x47930000)]
  0x44bb8c00 JavaThread "JBossQuartzScheduler_Worker-4" [_thread_blocked, id=5100, stack(0x47890000,0x478e0000)]
  0x44bb8800 JavaThread "JBossQuartzScheduler_Worker-3" [_thread_blocked, id=4468, stack(0x47840000,0x47890000)]
  0x44bb8000 JavaThread "JBossQuartzScheduler_Worker-2" [_thread_blocked, id=5620, stack(0x477f0000,0x47840000)]
  0x44bb7c00 JavaThread "JBossQuartzScheduler_Worker-1" [_thread_blocked, id=5200, stack(0x477a0000,0x477f0000)]
  0x44bb6c00 JavaThread "pool-1-thread-1" [_thread_blocked, id=1924, stack(0x47750000,0x477a0000)]
  0x44bb7400 JavaThread "ContainerBackgroundProcessor[StandardEngine[jboss.web]]" daemon [_thread_blocked, id=2908, stack(0x47700000,0x47750000)]
  0x44bb6800 JavaThread "Transaction Reaper Worker 0" daemon [_thread_blocked, id=4408, stack(0x476b0000,0x47700000)]
  0x44bb6000 JavaThread "Transaction Reaper" daemon [_thread_blocked, id=5436, stack(0x47660000,0x476b0000)]
  0x44bb5c00 JavaThread "Listener:4713" daemon [_thread_in_native, id=5008, stack(0x47610000,0x47660000)]
  0x44bb5400 JavaThread "Periodic Recovery" [_thread_blocked, id=4300, stack(0x475c0000,0x47610000)]
  0x450ea800 JavaThread "Listener:4712" daemon [_thread_in_native, id=2472, stack(0x47570000,0x475c0000)]
  0x450ea000 JavaThread "Transaction Expired Entry Monitor" daemon [_thread_blocked, id=5088, stack(0x47520000,0x47570000)]
  0x450e9c00 JavaThread "pool-2-thread-1" [_thread_in_native, id=5940, stack(0x474d0000,0x47520000)]
  0x450e9400 JavaThread "hornetq-failure-check-thread" [_thread_blocked, id=5080, stack(0x47480000,0x474d0000)]
  0x450e9000 JavaThread "Old I/O server boss (channelId: 25341025, localhost/127.0.0.1:5445)" [_thread_blocked, id=5336, stack(0x47430000,0x47480000)]
  0x450e8800 JavaThread "Thread-1 (group:HornetQ-scheduled-threads-8658191)" [_thread_blocked, id=5444, stack(0x473e0000,0x47430000)]
  0x450e8400 JavaThread "Old I/O server boss (channelId: 20598849, localhost/127.0.0.1:5455)" [_thread_blocked, id=3108, stack(0x47390000,0x473e0000)]
  0x450e7c00 JavaThread "pool-8-thread-1" [_thread_blocked, id=4820, stack(0x47340000,0x47390000)]
  0x450e7400 JavaThread "pool-7-thread-1" [_thread_blocked, id=4900, stack(0x472f0000,0x47340000)]
  0x450e7000 JavaThread "Thread-0 (group:HornetQ-Asynchronous-Persistent-Writes25017556-20597295)" daemon [_thread_blocked, id=4840, stack(0x472a0000,0x472f0000)]
  0x462a9c00 JavaThread "Thread-0 (group:HornetQ-scheduled-threads-8658191)" [_thread_blocked, id=4940, stack(0x47140000,0x47190000)]
  0x462a9400 JavaThread "hornetq-expiry-reaper-thread" [_thread_blocked, id=5240, stack(0x470f0000,0x47140000)]
  0x462a9000 JavaThread "Timer-0" daemon [_thread_blocked, id=5184, stack(0x470a0000,0x470f0000)]
  0x462a8800 JavaThread "hornetq-buffer-timeout" [_thread_blocked, id=4560, stack(0x47050000,0x470a0000)]
  0x462a8400 JavaThread "AcceptorThread[ServerSocket[addr=localhost/127.0.0.1,port=0,localport=4446]]" [_thread_in_native, id=5604, stack(0x47000000,0x47050000)]
  0x462a7c00 JavaThread "ServerSocketRefresh" daemon [_thread_blocked, id=5764, stack(0x46fb0000,0x47000000)]
  0x462a7800 JavaThread "pool-6-thread-1" [_thread_in_native, id=468, stack(0x46f60000,0x46fb0000)]
  0x462a7000 JavaThread "RMI TCP Accept-1098" daemon [_thread_in_native, id=5688, stack(0x46f10000,0x46f60000)]
  0x462a6800 JavaThread "RMI Reaper" [_thread_blocked, id=5104, stack(0x46ec0000,0x46f10000)]
  0x462a6400 JavaThread "RMI TCP Accept-1091" daemon [_thread_in_native, id=4564, stack(0x46e70000,0x46ec0000)]
  0x46708c00 JavaThread "RMI TCP Accept-1090" daemon [_thread_in_native, id=2340, stack(0x46e20000,0x46e70000)]
  0x466ed800 JavaThread "AcceptorThread[ServerSocket[addr=/127.0.0.1,port=0,localport=3873]]" [_thread_in_native, id=4716, stack(0x46dd0000,0x46e20000)]
  0x466ed000 JavaThread "ServerSocketRefresh" daemon [_thread_blocked, id=5328, stack(0x45910000,0x45960000)]
  0x44ce0c00 JavaThread "GC Daemon" daemon [_thread_blocked, id=5532, stack(0x45960000,0x459b0000)]
  0x45288800 JavaThread "AuthenticationCacheFlushThread" [_thread_blocked, id=980, stack(0x456a0000,0x456f0000)]
  0x022b9c00 JavaThread "DestroyJavaVM" [_thread_blocked, id=5796, stack(0x003b0000,0x00400000)]
  0x0198e000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=6016, stack(0x446b0000,0x44700000)]
  0x01982800 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=2476, stack(0x44660000,0x446b0000)]
  0x01981800 JavaThread "Attach Listener" daemon [_thread_blocked, id=5068, stack(0x44610000,0x44660000)]
  0x0197e400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=5852, stack(0x445c0000,0x44610000)]
  0x01951c00 JavaThread "Finalizer" daemon [_thread_blocked, id=5648, stack(0x44570000,0x445c0000)]
  0x01950800 JavaThread "Reference Handler" daemon [_thread_blocked, id=4224, stack(0x44520000,0x44570000)]

Other Threads:
=>0x0194d000 VMThread [stack: 0x444d0000,0x44520000] [id=5012]
  0x019a9400 WatcherThread [stack: 0x44700000,0x44750000] [id=4556]

VM state:at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x022b7dc0] Threads_lock - owner thread: 0x0194d000
[0x022b81d0] Heap_lock - owner thread: 0x46083800

Heap
 def new generation   total 78848K, used 58569K [0x042c0000, 0x09840000, 0x142c0000)
  eden space 70144K,  74% used [0x042c0000, 0x0760da08, 0x08740000)
  from space 8704K,  69% used [0x08fc0000, 0x095a4c70, 0x09840000)
  to   space 8704K,   0% used [0x08740000, 0x08740000, 0x08fc0000)
 tenured generation   total 174784K, used 77227K [0x142c0000, 0x1ed70000, 0x342c0000)
   the space 174784K,  44% used [0x142c0000, 0x18e2ad48, 0x18e2ae00, 0x1ed70000)
 compacting perm gen  total 49152K, used 49151K [0x342c0000, 0x372c0000, 0x442c0000)
   the space 49152K,  99% used [0x342c0000, 0x372bff48, 0x372c0000, 0x372c0000)
No shared spaces configured.

Code Cache  [0x022c0000, 0x02900000, 0x042c0000)
 total_blobs=3142 nmethods=2947 adapters=129 free_code_cache=27034496 largest_free_block=256

Dynamic libraries:
0x00400000 - 0x00424000     C:\Program Files\Java\jdk1.6.0_26\bin\javaw.exe
0x77b90000 - 0x77cb8000     C:\Windows\system32\ntdll.dll
0x77810000 - 0x778ec000     C:\Windows\system32\kernel32.dll
0x76970000 - 0x76a36000     C:\Windows\system32\ADVAPI32.dll
0x77cd0000 - 0x77d93000     C:\Windows\system32\RPCRT4.dll
0x76590000 - 0x7662d000     C:\Windows\system32\USER32.dll
0x77b40000 - 0x77b8b000     C:\Windows\system32\GDI32.dll
0x76630000 - 0x7664e000     C:\Windows\system32\IMM32.DLL
0x767c0000 - 0x76888000     C:\Windows\system32\MSCTF.dll
0x768c0000 - 0x7696a000     C:\Windows\system32\msvcrt.dll
0x76250000 - 0x76259000     C:\Windows\system32\LPK.DLL
0x763b0000 - 0x7642d000     C:\Windows\system32\USP10.dll
0x7c340000 - 0x7c396000     C:\Program Files\Java\jdk1.6.0_26\jre\bin\msvcr71.dll
0x6d8a0000 - 0x6db4f000     C:\Program Files\Java\jdk1.6.0_26\jre\bin\client\jvm.dll
0x74910000 - 0x74942000     C:\Windows\system32\WINMM.dll
0x76260000 - 0x763a5000     C:\Windows\system32\ole32.dll
0x778f0000 - 0x7797d000     C:\Windows\system32\OLEAUT32.dll
0x748d0000 - 0x7490e000     C:\Windows\system32\OLEACC.dll
0x76080000 - 0x760ac000     C:\Windows\system32\apphelp.dll
0x6d850000 - 0x6d85c000     C:\Program Files\Java\jdk1.6.0_26\jre\bin\verify.dll
0x6d3d0000 - 0x6d3ef000     C:\Program Files\Java\jdk1.6.0_26\jre\bin\java.dll
0x761b0000 - 0x761b7000     C:\Windows\system32\PSAPI.DLL
0x6d890000 - 0x6d89f000     C:\Program Files\Java\jdk1.6.0_26\jre\bin\zip.dll
0x6d600000 - 0x6d609000     C:\Program Files\Java\jdk1.6.0_26\jre\bin\management.dll
0x6d6b0000 - 0x6d6c3000     C:\Program Files\Java\jdk1.6.0_26\jre\bin\net.dll
0x76440000 - 0x7646d000     C:\Windows\system32\WS2_32.dll
0x76430000 - 0x76436000     C:\Windows\system32\NSI.dll
0x75740000 - 0x7577b000     C:\Windows\system32\mswsock.dll
0x75950000 - 0x75955000     C:\Windows\System32\wship6.dll
0x75120000 - 0x7512f000     C:\Windows\system32\NLAapi.dll
0x75ab0000 - 0x75ac9000     C:\Windows\system32\IPHLPAPI.DLL
0x75a70000 - 0x75aa5000     C:\Windows\system32\dhcpcsvc.DLL
0x75cf0000 - 0x75d1c000     C:\Windows\system32\DNSAPI.dll
0x760e0000 - 0x760f4000     C:\Windows\system32\Secur32.dll
0x75a60000 - 0x75a67000     C:\Windows\system32\WINNSI.DLL
0x75a30000 - 0x75a52000     C:\Windows\system32\dhcpcsvc6.DLL
0x73440000 - 0x7344f000     C:\Windows\system32\napinsp.dll
0x733c0000 - 0x733d2000     C:\Windows\system32\pnrpnsp.dll
0x733f0000 - 0x733f8000     C:\Windows\System32\winrnr.dll
0x77da0000 - 0x77de9000     C:\Windows\system32\WLDAP32.dll
0x75780000 - 0x75785000     C:\Windows\System32\wshtcpip.dll
0x73450000 - 0x73456000     C:\Windows\system32\rasadhlp.dll
0x75580000 - 0x755bb000     C:\Windows\system32\rsaenh.dll
0x76100000 - 0x7611e000     C:\Windows\system32\USERENV.dll
0x6d6d0000 - 0x6d6d9000     C:\Program Files\Java\jdk1.6.0_26\jre\bin\nio.dll
0x6d7a0000 - 0x6d7a6000     C:\Program Files\Java\jdk1.6.0_26\jre\bin\rmi.dll

VM Arguments:
jvm_args: -Dprogram.name=JBossTools: JBoss 6.0 Runtime -Xms256m -Xmx768m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.endorsed.dirs=E:\jboss-6.0.0.Final\lib\endorsed -Djava.library.path=E:/jboss-6.0.0.Final/bin/native -Dfile.encoding=Cp1252 
java_command: org.jboss.Main --configuration=default -b localhost -Djboss.server.base.url=file:/E:/jboss-6.0.0.Final/server/
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_26
PATH=native
USERNAME=rajalingam
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows Vista Build 6002 Service Pack 2

CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 13, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3

Memory: 4k page, physical 3396264k(1439516k free), swap 10179924k(8127552k free)

vm_info: Java HotSpot(TM) Client VM (20.1-b02) for windows-x86 JRE (1.6.0_26-b03), built on May  4 2011 00:50:59 by "java_re" with MS VC++ 7.1 (VS2003)

time: Thu Apr 26 14:32:48 2012
elapsed time: 82 seconds

Thank You in advance

java
jboss
asked on Server Fault Apr 30, 2012 by Mallika • edited Apr 30, 2012 by Tom

1 Answer

2

Someone will come along in a minute, who has the first clue about what they are talking about, and give you a proper answer. But in the meantime you got me ;-)

There is a similar question on gaming, where the details were given in the answer of the description of the error code 0xc0000005, as causing invalid memory access.;

Access violation exceptions (STATUS_ACCESS_VIOLATION) are generated by modern processors when a memory access caused by an instruction or program execution does not satisfy certain conditions defined by the processor architecture or memory management unit structures.

Your OS seems to be reporting about 3.2 GB of memory, but my understanding is that the 32-bit JVM is limited to about 1.5GB of Heap, so I am taking a punt that this is indicating that you have run out of memory;

compacting perm gen  total 49152K, used 49151K [0x342c0000, 0x372c0000, 0x442c0000)
the space 49152K,  99% used [0x342c0000, 0x372bff48, 0x372c0000, 0x372c0000)

jvm_args: -Dprogram.name=JBossTools: JBoss 6.0 Runtime -Xms256m -Xmx768m 
 -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000  
 -Dsun.rmi.dgc.server.gcInterval=3600000 
 -Djava.endorsed.dirs=E:\jboss-6.0.0.Final 
 \lib\endorsed -Djava.library.path=E:/jboss-6.0.0.Final/bin/native        
 -Dfile.encoding=Cp1252

I'm guessing that you are running out of memory, and it looks like be permGenSpace ( 99% used, total 49152K, used 49151K) but from your options, that should grab up to 256 MB and its not entirely clear why you would get to the theoretical 32-bit max 1.5GB with the other limits applied -Xms256m -Xmx768m.

answered on Server Fault Apr 30, 2012 by Tom • edited Apr 13, 2017 by Community

User contributions licensed under CC BY-SA 3.0