Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues with storing Microsoft Edge (Chromium) user data folder in vault #2238

Closed
2 tasks done
dj-nitehawk opened this issue May 8, 2022 · 4 comments
Closed
2 tasks done
Assignees
Labels
misc:filesystem type:bug Something isn't working
Milestone

Comments

@dj-nitehawk
Copy link

Please agree to the following

Summary

when storing ms edge user data folder in a cryptomator vault, edge suffers from random freezes and a bunch of errors are logged in cryptomator log file.

What software is involved?

  • Operating System: Windows 11
  • Cryptomator: 1.6.10

Volume Type

FUSE

Steps to Reproduce

  1. copy User Data folder from %AppData%\Local\Microsoft\Edge to a cryptomator vault
  2. create a symlink in %AppData%\Local\Microsoft\Edge to point to the cryptomator drive/volume
  3. launch ms edge
  4. check cryptomator log file for the errors

Expected Behavior

edge was working fine like until a recent cryptomator/winfsp update.

Actual Behavior

random freezes of edge and or total failure to launch edge. and a bunch of java.lang.NullPointerException: Cannot invoke "java.nio.file.attribute.PosixFileAttributeView.setPermissions(java.util.Set)" errors are logged.

Reproducibility

Intermittent

Relevant Log Output

08:32:04.711 [main] INFO  org.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.6.10 on Windows 11 10.0 (amd64)
08:32:04.752 [main] INFO  org.cryptomator.ipc.Server - Spawning IPC server listening on socket C:\Users\djnitehawk\AppData\Roaming\Cryptomator\ipc.socket
08:32:04.976 [JavaFX Application Thread] INFO  org.cryptomator.launcher.Cryptomator - JavaFX runtime started after 444ms
08:32:06.447 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockWorkflow - Unlock of 'VAULT' succeeded.
08:32:06.449 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockWorkflow - Unlock of 'EDGEVAULT' succeeded.
08:32:11.948 [JavaFX Application Thread] INFO  o.cryptomator.ui.fxapp.UpdateChecker - Current version: 1.6.10, lastest version: 1.6.9
08:32:17.139 [Thread-98] WARN  o.c.frontend.fuse.ReadWriteAdapter - mkdir /User Data/Crashpad failed, file already exists.
08:32:17.143 [Thread-107] WARN  o.c.frontend.fuse.ReadWriteAdapter - mkdir /User Data/Crashpad/reports failed, file already exists.
08:32:17.153 [Thread-119] WARN  o.c.frontend.fuse.ReadWriteAdapter - mkdir /User Data/Crashpad/attachments failed, file already exists.
08:32:17.457 [Thread-562] WARN  o.c.frontend.fuse.ReadWriteAdapter - mkdir /User Data/Default/Code Cache failed, file already exists.
08:32:17.516 [Thread-742] ERROR o.c.frontend.fuse.ReadWriteAdapter - chmod /User Data/Default/Cache failed.
java.lang.NullPointerException: Cannot invoke "java.nio.file.attribute.PosixFileAttributeView.setPermissions(java.util.Set)" because the return value of "org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.getCiphertextAttributeView(java.lang.Class)" is null
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.setPermissions(CryptoPosixFileAttributeView.java:59)
	at java.base/java.nio.file.Files.setPosixFilePermissions(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadWriteAdapter.chmod(ReadWriteAdapter.java:142)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$7.invoke(Unknown Source)
08:32:17.516 [Thread-727] ERROR o.c.frontend.fuse.ReadWriteAdapter - chmod /User Data/Default/4dc4815a-5d48-469f-9bf5-7dd996a9e9a0.tmp failed.
java.lang.NullPointerException: Cannot invoke "java.nio.file.attribute.PosixFileAttributeView.setPermissions(java.util.Set)" because the return value of "org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.getCiphertextAttributeView(java.lang.Class)" is null
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.setPermissions(CryptoPosixFileAttributeView.java:59)
	at java.base/java.nio.file.Files.setPosixFilePermissions(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadWriteAdapter.chmod(ReadWriteAdapter.java:142)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$7.invoke(Unknown Source)
08:32:17.516 [Thread-814] ERROR o.c.frontend.fuse.ReadWriteAdapter - chmod /User Data/Default/Sync Data/LevelDB/LOG failed.
java.lang.NullPointerException: Cannot invoke "java.nio.file.attribute.PosixFileAttributeView.setPermissions(java.util.Set)" because the return value of "org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.getCiphertextAttributeView(java.lang.Class)" is null
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.setPermissions(CryptoPosixFileAttributeView.java:59)
	at java.base/java.nio.file.Files.setPosixFilePermissions(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadWriteAdapter.chmod(ReadWriteAdapter.java:142)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$7.invoke(Unknown Source)
08:32:17.524 [Thread-979] ERROR o.c.frontend.fuse.ReadWriteAdapter - chmod /User Data/Default/Site Characteristics Database/LOG failed.
java.lang.NullPointerException: Cannot invoke "java.nio.file.attribute.PosixFileAttributeView.setPermissions(java.util.Set)" because the return value of "org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.getCiphertextAttributeView(java.lang.Class)" is null
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.setPermissions(CryptoPosixFileAttributeView.java:59)
	at java.base/java.nio.file.Files.setPosixFilePermissions(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadWriteAdapter.chmod(ReadWriteAdapter.java:142)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$7.invoke(Unknown Source)
08:32:17.532 [Thread-1018] ERROR o.c.frontend.fuse.ReadWriteAdapter - chmod /User Data/Default/Safe Browsing Network failed.
java.lang.NullPointerException: Cannot invoke "java.nio.file.attribute.PosixFileAttributeView.setPermissions(java.util.Set)" because the return value of "org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.getCiphertextAttributeView(java.lang.Class)" is null
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.setPermissions(CryptoPosixFileAttributeView.java:59)
	at java.base/java.nio.file.Files.setPosixFilePermissions(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadWriteAdapter.chmod(ReadWriteAdapter.java:142)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$7.invoke(Unknown Source)
08:32:17.558 [Thread-1177] ERROR o.c.frontend.fuse.ReadOnlyAdapter - release /User Data/Default/EdgePushStorageWithConnectTokens/LOCK failed.
java.nio.file.NoSuchFileException: D:\SETTINGS\EDGEVAULT\d\3C\MKI3HSAIXXSIQJIOVVMJ6A5EYL732Y\0V-dJllqoBAO0eyzYBmlda5ZSgM=.c9r
	at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.setFileTimes(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.setTimes(Unknown Source)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.ch.CleartextFileChannel.persistLastModified(CleartextFileChannel.java:246)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.ch.CleartextFileChannel.implCloseChannel(CleartextFileChannel.java:314)
	at java.base/java.nio.channels.spi.AbstractInterruptibleChannel.close(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.OpenFile.close(OpenFile.java:103)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.OpenFileFactory.close(OpenFileFactory.java:78)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadOnlyFileHandler.release(ReadOnlyFileHandler.java:81)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadOnlyAdapter.release(ReadOnlyAdapter.java:247)
	at ru.serce.jnrfuse.AbstractFuseFS.lambda$init$7(AbstractFuseFS.java:150)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$14.invoke(Unknown Source)
08:32:17.563 [Thread-1213] ERROR o.c.frontend.fuse.ReadOnlyAdapter - release /User Data/Default/66bc693c-c884-4f2a-b62b-d71d05b21119.tmp failed.
java.nio.file.NoSuchFileException: D:\SETTINGS\EDGEVAULT\d\SB\MRFJCEGFOTHDVMDFWPFG73ZY3YZM33\i8iUjpM9yefyQqHvQ75csywnyNXC-ID8v6gF7c8aEaGB-Eu6fwLm1sGGALCasDdzkMdcmC4WzuI=.c9r
	at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.setFileTimes(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.setTimes(Unknown Source)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.ch.CleartextFileChannel.persistLastModified(CleartextFileChannel.java:246)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.ch.CleartextFileChannel.implCloseChannel(CleartextFileChannel.java:314)
	at java.base/java.nio.channels.spi.AbstractInterruptibleChannel.close(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.OpenFile.close(OpenFile.java:103)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.OpenFileFactory.close(OpenFileFactory.java:78)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadOnlyFileHandler.release(ReadOnlyFileHandler.java:81)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadOnlyAdapter.release(ReadOnlyAdapter.java:247)
	at ru.serce.jnrfuse.AbstractFuseFS.lambda$init$7(AbstractFuseFS.java:150)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$14.invoke(Unknown Source)
08:32:17.571 [Thread-1280] ERROR o.c.frontend.fuse.ReadWriteAdapter - chmod /User Data/Default/Network failed.
java.lang.NullPointerException: Cannot invoke "java.nio.file.attribute.PosixFileAttributeView.setPermissions(java.util.Set)" because the return value of "org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.getCiphertextAttributeView(java.lang.Class)" is null
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.attr.CryptoPosixFileAttributeView.setPermissions(CryptoPosixFileAttributeView.java:59)
	at java.base/java.nio.file.Files.setPosixFilePermissions(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadWriteAdapter.chmod(ReadWriteAdapter.java:142)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$7.invoke(Unknown Source)

Anything else?

No response

@dj-nitehawk dj-nitehawk added the type:bug Something isn't working label May 8, 2022
@overheadhunter overheadhunter self-assigned this May 10, 2022
@overheadhunter
Copy link
Member

Cryptomator should not even attempt to get a PosixFileAttributeView on Windows file system. I assume D:\SETTINGS\EDGEVAULT is a normal NTFS drive?

@overheadhunter
Copy link
Member

Depends on cryptomator/cryptofs#131

@overheadhunter overheadhunter added this to the 1.6.11 milestone May 10, 2022
@dj-nitehawk
Copy link
Author

dj-nitehawk commented May 10, 2022

I assume D:\SETTINGS\EDGEVAULT is a normal NTFS drive

yes it is a normal ntfs partition

@infeo infeo closed this as completed in 822963e May 13, 2022
@dj-nitehawk
Copy link
Author

@infeo i just upgraded to the latest crytomator today but the problem still persists. i think the log entries are a bit different now. but ms edge still freezes up from time to time. file system used is FUSE (WinFSP latest version).

18:45:09.628 [main] INFO  org.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.6.11 on Windows 11 10.0 (amd64)
18:45:09.674 [main] INFO  org.cryptomator.ipc.Server - Spawning IPC server listening on socket C:\Users\djnitehawk\AppData\Roaming\Cryptomator\ipc.socket
18:45:09.895 [JavaFX Application Thread] INFO  org.cryptomator.launcher.Cryptomator - JavaFX runtime started after 450ms
18:45:11.391 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockWorkflow - Unlock of 'VAULT' succeeded.
18:45:11.587 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockWorkflow - Unlock of 'EDGE-VAULT' succeeded.
18:45:16.947 [JavaFX Application Thread] INFO  o.cryptomator.ui.fxapp.UpdateChecker - Current version: 1.6.11, lastest version: 1.6.10
18:45:29.766 [Thread-116] WARN  o.c.frontend.fuse.ReadWriteAdapter - mkdir /User Data/Crashpad failed, file already exists.
18:45:29.769 [Thread-121] WARN  o.c.frontend.fuse.ReadWriteAdapter - mkdir /User Data/Crashpad/reports failed, file already exists.
18:45:29.771 [Thread-126] WARN  o.c.frontend.fuse.ReadWriteAdapter - mkdir /User Data/Crashpad failed, file already exists.
18:45:29.772 [Thread-129] WARN  o.c.frontend.fuse.ReadWriteAdapter - mkdir /User Data/Crashpad/attachments failed, file already exists.
18:45:29.774 [Thread-136] WARN  o.c.frontend.fuse.ReadWriteAdapter - mkdir /User Data/Crashpad/reports failed, file already exists.
18:45:29.784 [Thread-145] WARN  o.c.frontend.fuse.ReadWriteAdapter - mkdir /User Data/Crashpad/attachments failed, file already exists.
18:45:30.004 [Thread-381] WARN  o.c.frontend.fuse.ReadWriteAdapter - Setting posix permissions not supported by underlying file system.
18:45:30.094 [Thread-639] ERROR o.c.frontend.fuse.ReadOnlyAdapter - release /User Data/Default/Sync Data/LevelDB/LOG.old~RF1fd93c8.TMP failed.
java.nio.file.NoSuchFileException: D:\SETTINGS\EDGE-VAULT\d\4W\RJ4XUZRWQN2UXVOVFVZUHKTSMOLJ4V\cG6w6Z-Dsq8VZReBxsjdPCjAStOJJy-jdfUtQvw1N0y05yAUxA==.c9r
	at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.setFileTimes(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.setTimes(Unknown Source)
	at org.cryptomator.cryptofs@2.4.2/org.cryptomator.cryptofs.ch.CleartextFileChannel.persistLastModified(CleartextFileChannel.java:246)
	at org.cryptomator.cryptofs@2.4.2/org.cryptomator.cryptofs.ch.CleartextFileChannel.implCloseChannel(CleartextFileChannel.java:314)
	at java.base/java.nio.channels.spi.AbstractInterruptibleChannel.close(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.OpenFile.close(OpenFile.java:103)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.OpenFileFactory.close(OpenFileFactory.java:78)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadOnlyFileHandler.release(ReadOnlyFileHandler.java:81)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadOnlyAdapter.release(ReadOnlyAdapter.java:247)
	at ru.serce.jnrfuse.AbstractFuseFS.lambda$init$7(AbstractFuseFS.java:150)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$14.invoke(Unknown Source)
18:45:30.388 [Thread-1554] WARN  o.c.frontend.fuse.ReadWriteAdapter - Setting posix permissions not supported by underlying file system.
18:45:30.388 [Thread-1555] WARN  o.c.frontend.fuse.ReadWriteAdapter - Setting posix permissions not supported by underlying file system.
18:45:30.399 [Thread-1661] WARN  o.c.frontend.fuse.ReadWriteAdapter - Setting posix permissions not supported by underlying file system.
18:45:30.415 [Thread-1746] WARN  o.c.frontend.fuse.ReadWriteAdapter - Setting posix permissions not supported by underlying file system.
18:45:30.445 [Thread-1946] ERROR o.c.frontend.fuse.ReadOnlyAdapter - release /User Data/Default/Preferences~RF1fd954e.TMP failed.
java.nio.file.NoSuchFileException: D:\SETTINGS\EDGE-VAULT\d\WV\73NPUX3HDGAHCLW3IAKL35MXI3WKQD\1EBsjTrhMc3CVoAMkzKaBJh-gjBRWyC_Wk-fHQ_RxfGt6cLLi618s1c=.c9r
	at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.setFileTimes(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.setTimes(Unknown Source)
	at org.cryptomator.cryptofs@2.4.2/org.cryptomator.cryptofs.ch.CleartextFileChannel.persistLastModified(CleartextFileChannel.java:246)
	at org.cryptomator.cryptofs@2.4.2/org.cryptomator.cryptofs.ch.CleartextFileChannel.implCloseChannel(CleartextFileChannel.java:314)
	at java.base/java.nio.channels.spi.AbstractInterruptibleChannel.close(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.OpenFile.close(OpenFile.java:103)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.OpenFileFactory.close(OpenFileFactory.java:78)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadOnlyFileHandler.release(ReadOnlyFileHandler.java:81)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadOnlyAdapter.release(ReadOnlyAdapter.java:247)
	at ru.serce.jnrfuse.AbstractFuseFS.lambda$init$7(AbstractFuseFS.java:150)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$14.invoke(Unknown Source)
18:45:30.452 [Thread-2020] ERROR o.c.frontend.fuse.ReadOnlyAdapter - release /User Data/Default/Local Storage/leveldb/LOG.old~RF1fd954e.TMP failed.
java.nio.file.NoSuchFileException: D:\SETTINGS\EDGE-VAULT\d\ZW\RRGHGHXJ7A3MJ6APK4NNKBELWORHVA\umKLAytguc8QR-8Z-fbn_OyoQCHdXchMpZQ0Sp6kkNO9Z_t5-Q==.c9r
	at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.setFileTimes(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.setTimes(Unknown Source)
	at org.cryptomator.cryptofs@2.4.2/org.cryptomator.cryptofs.ch.CleartextFileChannel.persistLastModified(CleartextFileChannel.java:246)
	at org.cryptomator.cryptofs@2.4.2/org.cryptomator.cryptofs.ch.CleartextFileChannel.implCloseChannel(CleartextFileChannel.java:314)
	at java.base/java.nio.channels.spi.AbstractInterruptibleChannel.close(Unknown Source)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.OpenFile.close(OpenFile.java:103)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.OpenFileFactory.close(OpenFileFactory.java:78)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadOnlyFileHandler.release(ReadOnlyFileHandler.java:81)
	at org.cryptomator.frontend.fuse@1.3.4/org.cryptomator.frontend.fuse.ReadOnlyAdapter.release(ReadOnlyAdapter.java:247)
	at ru.serce.jnrfuse.AbstractFuseFS.lambda$init$7(AbstractFuseFS.java:150)
	at jnr.ffi.provider.jffi.NativeClosureProxy$$impl$$14.invoke(Unknown Source)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
misc:filesystem type:bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants