mongod fails to start on fresh WIndows 10 machine

2

I have downloaded and installed(tried both 'Complete' and 'Custom' options using mongodb-win32-x86_64-2008plus-ssl-3.2.8-signed.msi) on my new laptop having Windows 10.

However I attempt to start mongod.exe, I always get the '0xc000007b' error.

Based on an existing thread, I used the Dependency Walker for Win64(x64) version 2.2.6 and got the following output :

Error: At least one required implicit or forwarded dependency was not found.
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

I then tried profiling :

Error: At least one required implicit or forwarded dependency was not found.
Warning: At least one delay-load dependency module was not found.

--------------------------------------------------------------------------------
Starting profile on 8/2/2016 at 20:32:21

Operating System: Microsoft Windows NT/2000/XP/2003/Vista based Home (64-bit), version 6.02.9200
Program Executable: c:\windows\system32\CONHOST.EXE
Program Arguments: 0x4
Starting Directory: C:\WINDOWS\
Search Path: C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;%JAVA_HOME%/bin;C:\Program Files (x86)\Skype\Phone\;P:\Software\Build\Maven\apache-maven-3.3.9\bin;P:\Software\DB\NoSQL\MongoDB\installation\bin

Options Selected:
     Log DllMain calls for process attach and process detach messages.
     Hook the process to gather more detailed dependency information.
     Log LoadLibrary function calls.
     Log GetProcAddress function calls.
     Log debug output messages.
     Automatically open and profile child processes.
--------------------------------------------------------------------------------

Started "CONHOST.EXE" (process 0x2998) at address 0x00007FF7417A0000.  Successfully hooked module.
Loaded "NTDLL.DLL" at address 0x00007FF96BE50000.  Successfully hooked module.
Loaded "KERNEL32.DLL" at address 0x00007FF96B9F0000.  Successfully hooked module.
Loaded "KERNELBASE.DLL" at address 0x00007FF968620000.  Successfully hooked module.
DllMain(0x00007FF968620000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "KERNELBASE.DLL" called.
DllMain(0x00007FF968620000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "KERNELBASE.DLL" returned 1 (0x1).
DllMain(0x00007FF96B9F0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "KERNEL32.DLL" called.
DllMain(0x00007FF96B9F0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "KERNEL32.DLL" returned 1 (0x1).
Injected "DEPENDS.DLL" at address 0x0000000077980000.
DllMain(0x0000000077980000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "DEPENDS.DLL" called.
DllMain(0x0000000077980000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "DEPENDS.DLL" returned 1 (0x1).
Loaded "MSVCRT.DLL" at address 0x00007FF96BB50000.  Successfully hooked module.
Entrypoint reached. All implicit modules have been loaded.
DllMain(0x00007FF96BB50000, DLL_PROCESS_ATTACH, 0x0000000E78B0F6A0) in "MSVCRT.DLL" called.
DllMain(0x00007FF96BB50000, DLL_PROCESS_ATTACH, 0x0000000E78B0F6A0) in "MSVCRT.DLL" returned 1 (0x1).
Loaded "CONHOSTV2.DLL" at address 0x00007FF95B450000.  Successfully hooked module.
Loaded "COMBASE.DLL" at address 0x00007FF96B270000.  Successfully hooked module.
Loaded "RPCRT4.DLL" at address 0x00007FF96BBF0000.  Successfully hooked module.
Loaded "BCRYPTPRIMITIVES.DLL" at address 0x00007FF9691E0000.  Successfully hooked module.
Loaded "USER32.DLL" at address 0x00007FF969250000.  Successfully hooked module.
Loaded "GDI32.DLL" at address 0x00007FF96B0E0000.  Successfully hooked module.
Loaded "OLE32.DLL" at address 0x00007FF96B830000.  Successfully hooked module.
Loaded "SECHOST.DLL" at address 0x00007FF96B6C0000.  Successfully hooked module.
Loaded "IMM32.DLL" at address 0x00007FF96BAA0000.  Successfully hooked module.
Loaded "OLEAUT32.DLL" at address 0x00007FF96BD10000.  Successfully hooked module.
Loaded "PROPSYS.DLL" at address 0x00007FF9658A0000.  Successfully hooked module.
DllMain(0x00007FF96BBF0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "RPCRT4.DLL" called.
DllMain(0x00007FF96BBF0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "RPCRT4.DLL" returned 1808210689 (0x6BC71B01).
DllMain(0x00007FF9691E0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "BCRYPTPRIMITIVES.DLL" called.
DllMain(0x00007FF9691E0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "BCRYPTPRIMITIVES.DLL" returned 1 (0x1).
DllMain(0x00007FF96B270000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "COMBASE.DLL" called.
DllMain(0x00007FF96B270000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "COMBASE.DLL" returned 1 (0x1).
DllMain(0x00007FF96B0E0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "GDI32.DLL" called.
DllMain(0x00007FF96B0E0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "GDI32.DLL" returned 1 (0x1).
DllMain(0x00007FF969250000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "USER32.DLL" called.
DllMain(0x00007FF969250000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "USER32.DLL" returned 1 (0x1).
DllMain(0x00007FF96B6C0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SECHOST.DLL" called.
DllMain(0x00007FF96B6C0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SECHOST.DLL" returned 1802584065 (0x6B714001).
DllMain(0x00007FF96B830000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "OLE32.DLL" called.
DllMain(0x00007FF96B830000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "OLE32.DLL" returned 1 (0x1).
DllMain(0x00007FF96BAA0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "IMM32.DLL" called.
DllMain(0x00007FF96BAA0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "IMM32.DLL" returned 1 (0x1).
DllMain(0x00007FF96BD10000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "OLEAUT32.DLL" called.
DllMain(0x00007FF96BD10000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "OLEAUT32.DLL" returned 1 (0x1).
DllMain(0x00007FF9658A0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "PROPSYS.DLL" called.
DllMain(0x00007FF9658A0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "PROPSYS.DLL" returned 1 (0x1).
DllMain(0x00007FF95B450000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "CONHOSTV2.DLL" called.
DllMain(0x00007FF95B450000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "CONHOSTV2.DLL" returned 1 (0x1).
Loaded "SHELL32.DLL" at address 0x00007FF9697E0000.  Successfully hooked module.
Loaded "CFGMGR32.DLL" at address 0x00007FF968FC0000.  Successfully hooked module.
Loaded "WINDOWS.STORAGE.DLL" at address 0x00007FF9688E0000.  Successfully hooked module.
Loaded "ADVAPI32.DLL" at address 0x00007FF96B030000.  Successfully hooked module.
Loaded "SHLWAPI.DLL" at address 0x00007FF96B990000.  Successfully hooked module.
Loaded "KERNEL.APPCORE.DLL" at address 0x00007FF9684A0000.  Successfully hooked module.
Loaded "SHCORE.DLL" at address 0x00007FF968500000.  Successfully hooked module.
Loaded "POWRPROF.DLL" at address 0x00007FF9684B0000.  Successfully hooked module.
Loaded "PROFAPI.DLL" at address 0x00007FF968470000.  Successfully hooked module.
DllMain(0x00007FF968FC0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "CFGMGR32.DLL" called.
DllMain(0x00007FF968FC0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "CFGMGR32.DLL" returned 1 (0x1).
DllMain(0x00007FF96B030000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "ADVAPI32.DLL" called.
DllMain(0x00007FF96B030000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "ADVAPI32.DLL" returned 1 (0x1).
DllMain(0x00007FF96B990000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SHLWAPI.DLL" called.
DllMain(0x00007FF96B990000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SHLWAPI.DLL" returned 1 (0x1).
DllMain(0x00007FF9684A0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "KERNEL.APPCORE.DLL" called.
DllMain(0x00007FF9684A0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "KERNEL.APPCORE.DLL" returned 755582465 (0x2D094601).
DllMain(0x00007FF968500000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SHCORE.DLL" called.
DllMain(0x00007FF968500000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SHCORE.DLL" returned 1 (0x1).
DllMain(0x00007FF9684B0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "POWRPROF.DLL" called.
DllMain(0x00007FF9684B0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "POWRPROF.DLL" returned 1 (0x1).
DllMain(0x00007FF968470000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "PROFAPI.DLL" called.
DllMain(0x00007FF968470000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "PROFAPI.DLL" returned 1 (0x1).
DllMain(0x00007FF9688E0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "WINDOWS.STORAGE.DLL" called.
DllMain(0x00007FF9688E0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "WINDOWS.STORAGE.DLL" returned 1 (0x1).
DllMain(0x00007FF9697E0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SHELL32.DLL" called.
DllMain(0x00007FF9697E0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "SHELL32.DLL" returned 1 (0x1).
Loaded "UXTHEME.DLL" at address 0x00007FF966EA0000.  Successfully hooked module.
DllMain(0x00007FF966EA0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "UXTHEME.DLL" called.
DllMain(0x00007FF966EA0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "UXTHEME.DLL" returned 1 (0x1).
Error writing a breakpoint at the entrypoint return of "".  Entrypoint cannot be hooked. Invalid access to memory location (998).
Loaded "" at address 0x00000164BC9C0000.  Successfully hooked module.
Unloaded "" at address 0x00000164BC9C0000.
Loaded "MSCTF.DLL" at address 0x00007FF96B500000.  Successfully hooked module.
DllMain(0x00007FF96B500000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "MSCTF.DLL" called.
DllMain(0x00007FF96B500000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "MSCTF.DLL" returned 1 (0x1).
Loaded "DWMAPI.DLL" at address 0x00007FF966C10000.  Successfully hooked module.
DllMain(0x00007FF966C10000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "DWMAPI.DLL" called.
DllMain(0x00007FF966C10000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "DWMAPI.DLL" returned 1 (0x1).
Loaded "WTSAPI32.DLL" at address 0x00007FF966C40000.  Successfully hooked module.
DllMain(0x00007FF966C40000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "WTSAPI32.DLL" called.
DllMain(0x00007FF966C40000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "WTSAPI32.DLL" returned 1 (0x1).
Loaded "WINSTA.DLL" at address 0x00007FF967CD0000.  Successfully hooked module.
DllMain(0x00007FF967CD0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "WINSTA.DLL" called.
DllMain(0x00007FF967CD0000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "WINSTA.DLL" returned 1 (0x1).
Loaded "COMCTL32.DLL" at address 0x00007FF962930000.  Successfully hooked module.
DllMain(0x00007FF962930000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "COMCTL32.DLL" called.
DllMain(0x00007FF962930000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "COMCTL32.DLL" returned 1 (0x1).
DllMain(0x00007FF962930000, DLL_PROCESS_DETACH, 0x0000000000000001) in "COMCTL32.DLL" called.
DllMain(0x00007FF962930000, DLL_PROCESS_DETACH, 0x0000000000000001) in "COMCTL32.DLL" returned 1 (0x1).
DllMain(0x00007FF967CD0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "WINSTA.DLL" called.
DllMain(0x00007FF967CD0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "WINSTA.DLL" returned 1 (0x1).
DllMain(0x00007FF966C40000, DLL_PROCESS_DETACH, 0x0000000000000001) in "WTSAPI32.DLL" called.
DllMain(0x00007FF966C40000, DLL_PROCESS_DETACH, 0x0000000000000001) in "WTSAPI32.DLL" returned 1 (0x1).
DllMain(0x00007FF966C10000, DLL_PROCESS_DETACH, 0x0000000000000001) in "DWMAPI.DLL" called.
DllMain(0x00007FF966C10000, DLL_PROCESS_DETACH, 0x0000000000000001) in "DWMAPI.DLL" returned 1 (0x1).
DllMain(0x00007FF96B500000, DLL_PROCESS_DETACH, 0x0000000000000001) in "MSCTF.DLL" called.
DllMain(0x00007FF96B500000, DLL_PROCESS_DETACH, 0x0000000000000001) in "MSCTF.DLL" returned 1 (0x1).
DllMain(0x00007FF966EA0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "UXTHEME.DLL" called.
DllMain(0x00007FF966EA0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "UXTHEME.DLL" returned 1 (0x1).
DllMain(0x00007FF9697E0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "SHELL32.DLL" called.
DllMain(0x00007FF9697E0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "SHELL32.DLL" returned 1 (0x1).
DllMain(0x00007FF9688E0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "WINDOWS.STORAGE.DLL" called.
DllMain(0x00007FF9688E0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "WINDOWS.STORAGE.DLL" returned 1 (0x1).
DllMain(0x00007FF968470000, DLL_PROCESS_DETACH, 0x0000000000000001) in "PROFAPI.DLL" called.
DllMain(0x00007FF968470000, DLL_PROCESS_DETACH, 0x0000000000000001) in "PROFAPI.DLL" returned 1 (0x1).
DllMain(0x00007FF9684B0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "POWRPROF.DLL" called.
DllMain(0x00007FF9684B0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "POWRPROF.DLL" returned 1 (0x1).
DllMain(0x00007FF968500000, DLL_PROCESS_DETACH, 0x0000000000000001) in "SHCORE.DLL" called.
DllMain(0x00007FF968500000, DLL_PROCESS_DETACH, 0x0000000000000001) in "SHCORE.DLL" returned 1 (0x1).
DllMain(0x00007FF9684A0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "KERNEL.APPCORE.DLL" called.
DllMain(0x00007FF9684A0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "KERNEL.APPCORE.DLL" returned 755582465 (0x2D094601).
DllMain(0x00007FF96B990000, DLL_PROCESS_DETACH, 0x0000000000000001) in "SHLWAPI.DLL" called.
DllMain(0x00007FF96B990000, DLL_PROCESS_DETACH, 0x0000000000000001) in "SHLWAPI.DLL" returned 1 (0x1).
DllMain(0x00007FF96B030000, DLL_PROCESS_DETACH, 0x0000000000000001) in "ADVAPI32.DLL" called.
DllMain(0x00007FF96B030000, DLL_PROCESS_DETACH, 0x0000000000000001) in "ADVAPI32.DLL" returned 1 (0x1).
DllMain(0x00007FF968FC0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "CFGMGR32.DLL" called.
DllMain(0x00007FF968FC0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "CFGMGR32.DLL" returned 1 (0x1).
DllMain(0x00007FF95B450000, DLL_PROCESS_DETACH, 0x0000000000000001) in "CONHOSTV2.DLL" called.
DllMain(0x00007FF95B450000, DLL_PROCESS_DETACH, 0x0000000000000001) in "CONHOSTV2.DLL" returned 1 (0x1).
DllMain(0x00007FF9658A0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "PROPSYS.DLL" called.
DllMain(0x00007FF9658A0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "PROPSYS.DLL" returned 1 (0x1).
DllMain(0x00007FF96BD10000, DLL_PROCESS_DETACH, 0x0000000000000001) in "OLEAUT32.DLL" called.
DllMain(0x00007FF96BD10000, DLL_PROCESS_DETACH, 0x0000000000000001) in "OLEAUT32.DLL" returned 1 (0x1).
DllMain(0x00007FF96BAA0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "IMM32.DLL" called.
DllMain(0x00007FF96BAA0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "IMM32.DLL" returned 1 (0x1).
DllMain(0x00007FF96B830000, DLL_PROCESS_DETACH, 0x0000000000000001) in "OLE32.DLL" called.
DllMain(0x00007FF96B830000, DLL_PROCESS_DETACH, 0x0000000000000001) in "OLE32.DLL" returned 1 (0x1).
DllMain(0x00007FF96B6C0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "SECHOST.DLL" called.
DllMain(0x00007FF96B6C0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "SECHOST.DLL" returned 1 (0x1).
DllMain(0x00007FF969250000, DLL_PROCESS_DETACH, 0x0000000000000001) in "USER32.DLL" called.
DllMain(0x00007FF969250000, DLL_PROCESS_DETACH, 0x0000000000000001) in "USER32.DLL" returned 1 (0x1).
DllMain(0x00007FF96B0E0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "GDI32.DLL" called.
DllMain(0x00007FF96B0E0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "GDI32.DLL" returned 1 (0x1).
DllMain(0x00007FF96B270000, DLL_PROCESS_DETACH, 0x0000000000000001) in "COMBASE.DLL" called.
DllMain(0x00007FF96B270000, DLL_PROCESS_DETACH, 0x0000000000000001) in "COMBASE.DLL" returned 1 (0x1).
DllMain(0x00007FF9691E0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "BCRYPTPRIMITIVES.DLL" called.
DllMain(0x00007FF9691E0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "BCRYPTPRIMITIVES.DLL" returned 1 (0x1).
DllMain(0x00007FF96BBF0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "RPCRT4.DLL" called.
DllMain(0x00007FF96BBF0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "RPCRT4.DLL" returned 1 (0x1).
DllMain(0x00007FF96BB50000, DLL_PROCESS_DETACH, 0x0000000000000001) in "MSVCRT.DLL" called.
DllMain(0x00007FF96BB50000, DLL_PROCESS_DETACH, 0x0000000000000001) in "MSVCRT.DLL" returned 1 (0x1).
DllMain(0x0000000077980000, DLL_PROCESS_DETACH, 0x0000000000000001) in "DEPENDS.DLL" called.
DllMain(0x0000000077980000, DLL_PROCESS_DETACH, 0x0000000000000001) in "DEPENDS.DLL" returned 1 (0x1).
DllMain(0x00007FF96B9F0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "KERNEL32.DLL" called.
DllMain(0x00007FF96B9F0000, DLL_PROCESS_DETACH, 0x0000000000000001) in "KERNEL32.DLL" returned 1 (0x1).
DllMain(0x00007FF968620000, DLL_PROCESS_DETACH, 0x0000000000000001) in "KERNELBASE.DLL" called.
DllMain(0x00007FF968620000, DLL_PROCESS_DETACH, 0x0000000000000001) in "KERNELBASE.DLL" returned 1 (0x1).
Exited "CONHOST.EXE" (process 0x2998) with code 0 (0x0).

Surprisingly, it works well on my older laptop(auto upgraded from Windows 7 to 10 and having quite old mongodb installation).

How shall I proceed ?

mongodb
windows-10
asked on Stack Overflow Aug 2, 2016 by Kaliyug Antagonist • edited May 23, 2017 by Community

1 Answer

0

Is P:\ a local disk? If not try running mongod from a local folder on a local disk.

answered on Stack Overflow Jan 19, 2017 by Calin Pirtea

User contributions licensed under CC BY-SA 3.0