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

WSL2: EPERM error for syscall spawn #4255

Closed
jadbox opened this issue Jul 1, 2019 · 17 comments
Closed

WSL2: EPERM error for syscall spawn #4255

jadbox opened this issue Jul 1, 2019 · 17 comments

Comments

@jadbox
Copy link

jadbox commented Jul 1, 2019

WSL2
Using Node 12.5.0
Windows Version 10.0.18922 Build 18922

Error: spawn EPERM
    at ChildProcess.spawn (internal/child_process.js:394:11)                                                                at Object.spawn (child_process.js:535:9)                                                                                at 
  errno: 'EPERM',                                                                                                         
code: 'EPERM',                                                                                                          
syscall: 'spawn' 

The process is being run without sudo/root permissions (it's being run as a regular user).

@jadbox
Copy link
Author

jadbox commented Jul 1, 2019

The tool I'm using that tries to call spawn is env-cmd and I've filed a related bug to coordinate: toddbluhm/env-cmd#76

@jadbox
Copy link
Author

jadbox commented Jul 1, 2019

Using sudo I was able to get the program to run. However, on native other linux distro(s), a sudo command is not required.

@therealkenc
Copy link
Collaborator

Template was deleted and there is no repro to go on here. If it takes with sudo then the diverge is near certainly destined for linux-behavior tag because you'll likely find WSL2 is faithfully enforcing some permission which does not apply in your "other linux distro(s)" scenario -- which will be different in some subtle way.

@ghost
Copy link

ghost commented Jul 1, 2019

We’ve labelled your issue as ‘need-repro’ since we need more steps to help identify your problem. Could you please provide us with reproducible steps for the issue you’re experiencing, including things such as the specific command line steps necessary to reproduce the behavior and their output. Thank you! -The WSL Team

@tcztzy
Copy link

tcztzy commented Jul 4, 2019

I had the same problem. I think it is related to Windows Defender, because I reproduce this problem by the following steps:

  1. Under Ubuntu with WSL version 1, I use code to open folder, since it required update, the new integrated node path is changed, it required UAC, after confirm that, it works.
$ code .                                                                                                                
Updating VS Code Server to version 0f3794b38477eea13fb47fbe15a42798e6129338
Removing previous installation...
Downloading: 100%
Unpacking: 100%
  1. Switch Ubuntu to WSL2
PS C:\Users\tcztzy> wsl --set-version Ubuntu 2
  1. Using the same command and it failed
$ code .                                                                                                                                                                                                                 The factory method of "vs/server/remoteCli" has thrown an exception
{ Error: spawn EPERM
    at ChildProcess.spawn (internal/child_process.js:358:11)
    at Object.spawn (child_process.js:533:9)
    at l (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remoteCli.js:86:650)                                                                                                        at Object.<anonymous> (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remote                                                                                                 Cli.js:88:1010)
    at Function.t._safeInvokeFunction (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/l                                                                                                 oader.js:19:945)
    at Function.t._invokeFactory (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader                                                                                                 .js:20:175)
    at t.complete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:412)                                                                                                         at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30                                                                                                 :614)
    at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30                                                                                                 :858)
    at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30                                                                                                 :858)
    at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30                                                                                                 :858)
    at s._resolve (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:174)                                                                                                         at s.defineModule (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:24:534)                                                                                                     at o (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:28:673)
    at Object.l (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:36:291)                                                                                                           at Function.t._safeInvokeFunction (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/l                                                                                                 oader.js:19:945)
    at Function.t._invokeFactory (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader                                                                                                 .js:20:175)
    at t.complete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:412)                                                                                                         at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30                                                                                                 :614)
    at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30                                                                                                 :858)
    at s._resolve (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:174)                                                                                                         at s.defineModule (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:24:534)                                                                                                     at o (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:31:789)
    at c (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:17:118)
    at Object.<anonymous> (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remote                                                                                                 Cli.nls.js:4:1)
    at t._createAndEvalScript (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js                                                                                                 :17:162)
    at /home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:16:762
    at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3) errno: 'EPERM', code: 'EPERM                                                                                                 ', syscall: 'spawn' }
         Error: spawn EPERM
    at ChildProcess.spawn (internal/child_process.js:358:11)
    at Object.spawn (child_process.js:533:9)
    at l (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remoteCli.js:86:650)                                                                                                        at Object.<anonymous> (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remote                                                                                                 Cli.js:88:1010)
    at Function.t._safeInvokeFunction (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/l                                                                                                 oader.js:19:945)
    at Function.t._invokeFactory (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader                                                                                                 .js:20:175)
    at t.complete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:412)                                                                                                         at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30                                                                                                 :614)
    at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30                                                                                                 :858)
    at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30                                                                                                 :858)
    at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:858)                                                                                                at s._resolve (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:174)                                                                                                         at s.defineModule (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:24:534)    at o (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:28:673)                                                                                                                                                                                                                   at Object.l (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:36:291)                                                                                                           at Function.t._safeInvokeFunction (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:19:945)                                                                                     at Function.t._invokeFactory (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:175)                                                                                          at t.complete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:412)                                                                                                         at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:614)                                                                                                at s._onModuleComplete (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:858)                                                                                                at s._resolve (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:174)                                                                                                         at s.defineModule (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:24:534)    at o (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:31:789)                                                                                                                                                                                                                   at c (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:17:118)                                                                                                                  at Object.<anonymous> (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remoteCli.nls.js:4:1)                                                                                      at t._createAndEvalScript (/home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:17:162)                                                                                             at /home/tcztzy/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:16:762                                                                                                                      at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)                                                                                                                                                                                            

@ogawayuj
Copy link

ogawayuj commented Jul 6, 2019

I had the same problem useing VSCode on wsl2.
I share the behavior to reproduce and it's output.

  • the information about Windows
    OS : Windows 10 Home Insider Preview
    OS Build : 18932.1000

  • the behavior and the output

Microsoft Windows [Version 10.0.18932.1000]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>wsl
root@DESKTOP-KOH0NGK:/mnt/c/WINDOWS/system32# cd /home/
root@DESKTOP-KOH0NGK:/home# code .
The factory method of "vs/server/remoteCli" has thrown an exception
{ Error: spawn EPERM
    at ChildProcess.spawn (internal/child_process.js:358:11)
    at Object.spawn (child_process.js:533:9)
    at l (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remoteCli.js:86:650)
    at Object.<anonymous> (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remoteCli.js:88:1010)
    at Function.t._safeInvokeFunction (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:19:945)
    at Function.t._invokeFactory (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:175)
    at t.complete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:412)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:614)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:858)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:858)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:858)
    at s._resolve (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:174)
    at s.defineModule (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:24:534)
    at o (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:28:673)
    at Object.l (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:36:291)
    at Function.t._safeInvokeFunction (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:19:945)
    at Function.t._invokeFactory (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:175)
    at t.complete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:412)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:614)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:858)
    at s._resolve (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:174)
    at s.defineModule (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:24:534)
    at o (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:31:789)
    at c (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:17:118)
    at Object.<anonymous> (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remoteCli.nls.js:4:1)
    at t._createAndEvalScript (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:17:162)
    at /root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:16:762
    at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3) errno: 'EPERM', code: 'EPERM', syscall: 'spawn' }
Error: spawn EPERM
    at ChildProcess.spawn (internal/child_process.js:358:11)
    at Object.spawn (child_process.js:533:9)
    at l (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remoteCli.js:86:650)
    at Object.<anonymous> (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remoteCli.js:88:1010)
    at Function.t._safeInvokeFunction (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:19:945)
    at Function.t._invokeFactory (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:175)
    at t.complete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:412)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:614)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:858)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:858)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:858)
    at s._resolve (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:174)
    at s.defineModule (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:24:534)
    at o (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:28:673)
    at Object.l (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:36:291)
    at Function.t._safeInvokeFunction (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:19:945)
    at Function.t._invokeFactory (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:175)
    at t.complete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:20:412)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:614)
    at s._onModuleComplete (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:858)
    at s._resolve (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:30:174)
    at s.defineModule (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:24:534)
    at o (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:31:789)
    at c (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:17:118)
    at Object.<anonymous> (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/server/remoteCli.nls.js:4:1)
    at t._createAndEvalScript (/root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:17:162)
    at /root/.vscode-server/bin/0f3794b38477eea13fb47fbe15a42798e6129338/out/vs/loader.js:16:762
    at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)
    
  • the VSCode's Version
root@DESKTOP-KOH0NGK:/home# code -v
1.36.0
0f3794b38477eea13fb47fbe15a42798e6129338
x64
  • the WSL's Version
C:\WINDOWS\system32>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-18.04    Stopped         2

@fmichenaud
Copy link

Same issue here.

@leifniem
Copy link

leifniem commented Jul 6, 2019

Chiming in, error message exactly the same as the ones before with according folders. Can't solve with use of sudo

@dschaefer
Copy link

Same, was working fine until I updated to June (1.36) release.

@craigloewen-msft
Copy link
Member

To help us debug, if you're experiencing this issue could you post some steps for us to reproduce the issue? i.e: What commands you're running, or some sample code, etc. This will significantly help us narrow down the issue.

@leifniem
Copy link

leifniem commented Jul 8, 2019

To help us debug, if you're experiencing this issue could you post some steps for us to reproduce the issue? i.e: What commands you're running, or some sample code, etc. This will significantly help us narrow down the issue.

For me it was running the code command in a folder on WSL, which included a Volume connected to a running container (Wordpress). Sorry i can't reproduce it, but i removed Docker while i'm not able to get it to pass through to the host.

@therealkenc
Copy link
Collaborator

therealkenc commented Jul 8, 2019

if you're experiencing this issue could you post some steps for us to reproduce the issue?

I'd settle for a gist of the strace(1) log showing the EPERM. Unfortunately that is not straightforward to get because (a) The plugin and server closed source and (b) The launch mechanism for Remote WSL comes straight off /init->bash->..., contrast Remote SSH where at least you can get in under sshd like this.

It might be possible to get the trace by swapping out ~/.vscode-server/bin/bighexdigits/server.sh with a bounce off of strace. Or maybe swap out /bin/sh with a strace script. Noting that I'm hand waving.

25% chance this is #4175 (message) but I can't tell for sure without seeing it die. If people here are running zsh you can up that probability estimate to 85%.

@dschaefer
Copy link

WSL2 Ubuntu. Start it up. Create a directory. cd into it. run "code .".

That was it. Nothing special.

@therealkenc
Copy link
Collaborator

Nothing special.

No, it's something special. Not to imply in the pejorative sense.

Providing a recipe to grab the strace(1) log is proving more problematic than expected....

@dschaefer
Copy link

dschaefer commented Jul 13, 2019

I ran strace -f on my call to 'code .' and this is the error:

[pid 8224] execve("/mnt/c/ProgramData/Oracle/Java/javapath/cmd.exe", ["cmd.exe", "/C", "C:\Users\Dad\AppData\Local\Progr"..., "--folder-uri=vscode-remote://wsl"..., "--remote=wsl+Ubuntu"], 0x28b7a60 /* 24 vars */) = -1 EPERM (Operation not permitted)

At this point we're execve'ing to find cmd.exe in each of the directories on the path.

This directory is a leftover from an old Java install. javapath is a junction:

.2018-12-14 11:20 PM <JUNCTION> javapath [C:\ProgramData\Oracle\Java\javapath_target_956312]

Removing this directory from my path solved the EPERM problem.

@therealkenc
Copy link
Collaborator

therealkenc commented Jul 13, 2019

Alright so this is #4175 (message) aka #3886, which is more common in WSL 'cause #4104, after all.

@szvvx
Copy link

szvvx commented Nov 1, 2019

Same problem here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants