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

[BUG] Software Updates tab sometimes blank even through packages are available to update #2391

Closed
4 tasks done
redactedscribe opened this issue Jul 2, 2024 · 18 comments · Fixed by #2677
Closed
4 tasks done
Assignees
Labels
bug Something isn't working needs-further-study
Milestone

Comments

@redactedscribe
Copy link
Contributor

Please confirm these before moving forward

  • I have searched for my issue and have not found a work-in-progress/duplicate/resolved issue.
  • I have tested that this issue has not been fixed in the latest (beta or stable) release.
  • I have checked the FAQ section for solutions.
  • This issue is about a bug (if it is not, please use the correct template).

UniGetUI Version

3.1.0 beta 2

Windows version, edition and architecture

Windows 11 Pro

Describe your issue

Unsure how to trigger this, but I believe at least one time when I pressed refresh when encountering this bug earlier UniGetUI instantly crashed. This time, I can keep pressing refresh, or changing tab, but when I come back to the Software Updates tab, it is still blank despite 2 packages being available to update.

Steps to reproduce the issue

Unknown. Maybe it's something to do with icons for packages causing this bug as a side effect? Or something specifically related to WinGet? No clue.

UniGetUI Log

...
[02/07/2024 21:02:28] Found 5 available updates from Scoop
[02/07/2024 21:02:33] Non-MSStore WinGet Native Icons have been forcefully disabled on code
[02/07/2024 21:02:33] Loaded icon with URL=UniGetUI.Core.IconEngine.CacheableIcon for package Id=JetBrains.Toolbox
[02/07/2024 21:02:34] Icon for package JetBrains.Toolbox stored on C:\Users\User\AppData\Local\UniGetUI\CachedMedia\Winget\JetBrains.Toolbox.png
[02/07/2024 21:19:12] Found 0 installed packages from Chocolatey
[02/07/2024 21:19:12] Found 141 installed packages from Pip
[02/07/2024 21:19:13] Found 3 installed packages from PowerShell
[02/07/2024 21:19:13] Found 253 installed packages from Scoop
[02/07/2024 21:19:15] Found 9 installed packages from Npm
[02/07/2024 21:19:22] Found 427 installed packages from Winget
[02/07/2024 23:36:10] Found 0 installed packages from Chocolatey
[02/07/2024 23:36:11] Found 141 installed packages from Pip
[02/07/2024 23:36:13] Found 3 installed packages from PowerShell
[02/07/2024 23:36:13] Found 253 installed packages from Scoop
[02/07/2024 23:36:14] Found 0 available updates from Chocolatey
[02/07/2024 23:36:16] Found 9 installed packages from Npm
[02/07/2024 23:36:17] Found 0 available updates from PowerShell
[02/07/2024 23:36:21] Found 0 available updates from Npm
[02/07/2024 23:36:24] Found 427 installed packages from Winget
[02/07/2024 23:36:25] Found 10 available updates from Winget
[02/07/2024 23:36:33] Found 0 available updates from Pip
[02/07/2024 23:36:35] Found 253 installed packages from Scoop
[02/07/2024 23:36:51] Found 7 available updates from Scoop
[02/07/2024 23:36:53] Non-MSStore WinGet Native Icons have been forcefully disabled on code
[02/07/2024 23:36:53] Icon for package EaseUS.PartitionMaster was not found, returning default icon
[02/07/2024 23:36:55] Loaded icon with URL=UniGetUI.Core.IconEngine.CacheableIcon for package Id=go
[02/07/2024 23:36:56] An error occurred while retrieving the icon for package go
[02/07/2024 23:36:56] System.Net.Http.HttpRequestException: Response status code does not indicate success: 404 (Not Found).
                         at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
                         at UniGetUI.Core.IconEngine.IconCacheEngine.DownloadIconOrCache(Nullable`1 _icon, String ManagerName, String PackageId) in C:\SomePrograms\WingetUI-Store\src\UniGetUI.Core.IconStore\IconCacheEngine.cs:line 166
                         at UniGetUI.PackageEngine.PackageClasses.Package.GetIconUrl() in C:\SomePrograms\WingetUI-Store\src\UniGetUI.PackageEngine.PackageManagerClasses\Packages\Package.cs:line 199
[02/07/2024 23:36:58] Icon for package zig-dev was not found, returning default icon
[03/07/2024 01:11:42] Found 0 installed packages from Chocolatey
[03/07/2024 01:11:44] Found 3 installed packages from PowerShell
[03/07/2024 01:11:44] Found 141 installed packages from Pip
[03/07/2024 01:11:44] Found 253 installed packages from Scoop
[03/07/2024 01:11:46] Found 0 available updates from Chocolatey
[03/07/2024 01:11:48] Found 9 installed packages from Npm
[03/07/2024 01:11:49] Found 0 available updates from PowerShell
[03/07/2024 01:11:53] Found 0 available updates from Npm
[03/07/2024 01:11:58] Found 427 installed packages from Winget
[03/07/2024 01:11:58] Found 9 available updates from Winget
[03/07/2024 01:12:05] Found 0 available updates from Pip
[03/07/2024 01:12:07] Found 253 installed packages from Scoop
[03/07/2024 01:12:31] Found 5 available updates from Scoop
[03/07/2024 02:11:02] Found 0 available updates from Chocolatey
[03/07/2024 02:11:05] Found 0 available updates from PowerShell
[03/07/2024 02:11:09] Found 0 available updates from Npm
[03/07/2024 02:11:10] Found 9 available updates from Winget
[03/07/2024 02:11:22] Found 253 installed packages from Scoop
[03/07/2024 02:11:24] Found 0 available updates from Pip
[03/07/2024 02:11:38] Found 5 available updates from Scoop
[03/07/2024 02:12:26] Scoop buckets have been already refreshed in the last ten minutes, skipping.
[03/07/2024 02:12:28] Found 0 available updates from Chocolatey
[03/07/2024 02:12:29] Found 253 installed packages from Scoop
[03/07/2024 02:12:31] Found 0 available updates from PowerShell
[03/07/2024 02:12:32] Found 0 available updates from Npm
[03/07/2024 02:12:36] Found 9 available updates from Winget
[03/07/2024 02:12:45] Found 5 available updates from Scoop
[03/07/2024 02:12:46] Found 0 available updates from Pip
[03/07/2024 02:13:50] Scoop buckets have been already refreshed in the last ten minutes, skipping.
[03/07/2024 02:13:51] Found 0 available updates from Chocolatey
[03/07/2024 02:13:53] Found 253 installed packages from Scoop
[03/07/2024 02:13:54] Found 0 available updates from PowerShell
[03/07/2024 02:13:56] Found 0 available updates from Npm
[03/07/2024 02:14:00] Found 9 available updates from Winget
[03/07/2024 02:14:08] Found 5 available updates from Scoop
[03/07/2024 02:14:09] Found 0 available updates from Pip

Package Managers Logs

Manager Winget with version:
Naive WinGet CLI Version: v1.8.1791
Microsoft.WinGet.Client PSModule version: 
Using Native WinGet helper (COM Api)

——————————————————————————————————————————


Logged native task on manager Winget. Task type is ListSources
Process start time: 02/07/2024 21:01:47
Process end time:   02/07/2024 21:01:47

-- Task information
 ...

The task reported success

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is RefreshIndexes
Subprocess executable: "D:\Scoop\shims\winget.exe"
Command-line arguments: " source update --disable-interactivity"
Process start time: 02/07/2024 21:01:50
Process end time:   02/07/2024 21:01:52

-- Process STDOUT
 ...

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListPackages
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 02/07/2024 21:01:50
Process end time:   02/07/2024 21:02:02

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or 
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
   

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged native task on manager Winget. Task type is ListSources
Process start time: 02/07/2024 21:01:51
Process end time:   02/07/2024 21:01:52

-- Task information
 ...

The task reported success

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListUpdates
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 02/07/2024 21:01:52
Process end time:   02/07/2024 21:02:02

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or 
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
   

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListPackages
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 02/07/2024 21:19:10
Process end time:   02/07/2024 21:19:22

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or 
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
   

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListPackages
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 02/07/2024 23:36:09
Process end time:   02/07/2024 23:36:24

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or 
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
   

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is RefreshIndexes
Subprocess executable: "D:\Scoop\shims\winget.exe"
Command-line arguments: " source update --disable-interactivity"
Process start time: 02/07/2024 23:36:11
Process end time:   02/07/2024 23:36:17

-- Process STDOUT
 ...

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListUpdates
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 02/07/2024 23:36:17
Process end time:   02/07/2024 23:36:25

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or 
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
   

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListPackages
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 03/07/2024 01:11:40
Process end time:   03/07/2024 01:11:58

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or 
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
   

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is RefreshIndexes
Subprocess executable: "D:\Scoop\shims\winget.exe"
Command-line arguments: " source update --disable-interactivity"
Process start time: 03/07/2024 01:11:42
Process end time:   03/07/2024 01:11:49

-- Process STDOUT
 ...

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListUpdates
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 03/07/2024 01:11:49
Process end time:   03/07/2024 01:11:58

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or 
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
   

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is RefreshIndexes
Subprocess executable: "D:\Scoop\shims\winget.exe"
Command-line arguments: " source update --disable-interactivity"
Process start time: 03/07/2024 02:11:00
Process end time:   03/07/2024 02:11:02

-- Process STDOUT
 ...

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListUpdates
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 03/07/2024 02:11:02
Process end time:   03/07/2024 02:11:10

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or 
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
   

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is RefreshIndexes
Subprocess executable: "D:\Scoop\shims\winget.exe"
Command-line arguments: " source update --disable-interactivity"
Process start time: 03/07/2024 02:12:26
Process end time:   03/07/2024 02:12:27

-- Process STDOUT
 ...

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListUpdates
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 03/07/2024 02:12:27
Process end time:   03/07/2024 02:12:36

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or 
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
   

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is RefreshIndexes
Subprocess executable: "D:\Scoop\shims\winget.exe"
Command-line arguments: " source update --disable-interactivity"
Process start time: 03/07/2024 02:13:50
Process end time:   03/07/2024 02:13:51

-- Process STDOUT
 ...

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListUpdates
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 03/07/2024 02:13:51
Process end time:   03/07/2024 02:14:00

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or 
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
   

Return code: SUCCESS (0)

——————————————————————————————————————————

Relevant information

Ah. Whatever causes the bug, the temporary solution is to maximise the window (or presumably resize would also work). The 2 packages in the list redrew and now are visible and can be interacted with again.

Screenshots and videos

Screenshot is immediately after refreshing updates has finished:

WingetUI_2024-07-03_02-14-19

@redactedscribe redactedscribe added the bug Something isn't working label Jul 2, 2024
@marticliment marticliment added this to the Bugs milestone Jul 3, 2024
@EckeD
Copy link

EckeD commented Jul 4, 2024

Had the same happening.
As poster stated: "doing something" with the window fixes the issue. For me, I simply changed the size of the "Sources / Filters" column left of the list view (using the small handle between both frames) - that also refreshed the view and updates were shown again.

@ChaoticHolon
Copy link

This is happening to me as well, quite annoying. Started after updating to 3.1.0.

@marticliment
Copy link
Owner

Hello,

To all users facing issues with version 3.1.0, please try the new 3.1.1 beta, which aims to fix this issues.

UniGetUI 3.1.1-beta0 release: https://github.com/marticliment/UniGetUI/releases/tag/3.1.1-beta0
Direct installer URL: https://github.com/marticliment/UniGetUI/releases/download/3.1.1-beta0/UniGetUI.Installer.exe

Excuse me for the inconveniences.

@redactedscribe
Copy link
Contributor Author

@marticliment Still happens in beta-1.

@marticliment
Copy link
Owner

I think the cause of this issue is the same as #2464

@eidylon
Copy link

eidylon commented Jul 23, 2024

Just adding my voice as someone also getting this issue. v.3.1.0.

At least now I know from this thread resizing the window makes them show.

@redactedscribe
Copy link
Contributor Author

Don't think I've noticed this issue happening in 3.1.1-beta3 anymore.

@marticliment
Copy link
Owner

I suspect loading icons from the hard drive (versions prior to b3), which takes a long time, somehow broke the renderer. I am going to close this then.

@redactedscribe
Copy link
Contributor Author

@marticliment I spoke too early; unfortunately, I just noticed the bug in 3.1.1-beta3. It's not fixed yet.

@marticliment marticliment reopened this Jul 24, 2024
@Lockszmith-GH
Copy link

WingetUI_Bug animated
Just to show everyone how this actually looks like.

@Lockszmith-GH
Copy link

Lockszmith-GH commented Aug 7, 2024

Had a totaly new experience today. Resize didn't bring it back like in the animated gif I posted earlier. Instead the only thing that actually worked was unchecking my source and checking it again. I'll try and capture it the next time it happens.

I'm on 3.1.1

@only-su
Copy link

only-su commented Aug 15, 2024

Had a totaly new experience today. Resize didn't bring it back like in the animated gif I posted earlier. Instead the only thing that actually worked was unchecking my source and checking it again. I'll try and capture it the next time it happens.

I'm on 3.1.1

This seem related to #2635

@redactedscribe
Copy link
Contributor Author

Something I've noticed regarding reproducibility of the bug:

If you choose to update a package and then clear all the sources via "Clear selection" and then re-select a source (or all via "Select all"), the remaining packages that are still available for update will not show: the list will be blank (requiring the window size to be manipulated again to make them show again).

Important factors:

  • Clearing just one source will not be enough to trigger the bug unless the visible available updates are only for that one source. Use "Clear selection".
  • The clearing of the sources to cause the software updates list to be unpopulated (not referring the to blank bug, just empty), must occur immediately after telling the package to update. Specifically, it seems the clearing must occur before the log at the bottom of the windows reaches the Downloading https://... stage of the update procedure. At other times, this doesn't seem to be true and the list can be become blank after clearing the sources list after the package has updated. At the very least, clearing of all of the sources and then re-enabling one/all of them often triggers the bug.

Perhaps this can help track down the issue.

@marticliment
Copy link
Owner

I wil test it out, thanks!

@Lockszmith-GH
Copy link

I've recorded clearing the checkboxes, which didn't make a difference.

However, I can add - that after this recording, when I hit Clear Selection, the application crashed (will not file a bug if this repeats)

UniGetUI_GyHaZRLt1f

@redactedscribe
Copy link
Contributor Author

Yes, clearing the checkboxes won't make the list reappear. I was explaining how to reproducibly make them disappear. For that you first have to ensure that the packages are visible (by resizing the window if necessary). Then as explained, soon after an update has been initiated, press Clear selection. I'm hoping this could lead to uncovering the root of the problem.

@Lockszmith-GH
Copy link

In the MR you stated

This does NOT fix the issue where the page doesn't render.

I thought this was the 'does not render' issue - can you please point me at the still open bug?

@marticliment
Copy link
Owner

Sorry, the initial idea was not to fix it, but I finally ended up fixing it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working needs-further-study
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants