Skip to content

Commit

Permalink
Merge pull request #132 from Bolodya1997/fix-tests
Browse files Browse the repository at this point in the history
Manually update to the latest sdk and fix tests
  • Loading branch information
denis-tingaikin committed Mar 26, 2021
2 parents ad946e0 + 6659cda commit 310f6ac
Show file tree
Hide file tree
Showing 7 changed files with 87 additions and 67 deletions.
5 changes: 3 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ require (
github.com/golang/protobuf v1.4.3
github.com/google/uuid v1.2.0
github.com/networkservicemesh/api v0.0.0-20210323151719-3156ce7533e9
github.com/networkservicemesh/sdk v0.0.0-20210323152422-a9754c798b74
github.com/networkservicemesh/sdk-kernel v0.0.0-20210323152850-179cfcc94acf
github.com/networkservicemesh/sdk v0.0.0-20210325094830-8fe930cf2333
github.com/networkservicemesh/sdk-kernel v0.0.0-20210325095450-13d0dc75f274
github.com/pkg/errors v0.9.1
github.com/stretchr/testify v1.6.1
go.uber.org/goleak v1.1.10
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136 // indirect
golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13
Expand Down
19 changes: 4 additions & 15 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -64,20 +64,17 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM=
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs=
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
Expand All @@ -99,12 +96,9 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
Expand All @@ -123,10 +117,10 @@ github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OS
github.com/nats-io/stan.go v0.6.0/go.mod h1:eIcD5bi3pqbHT/xIIvXMwvzXYElgouBvaVRftaE+eac=
github.com/networkservicemesh/api v0.0.0-20210323151719-3156ce7533e9 h1:fthzwqhZV4wvTe0YHK2ZS6pTsOUETMWsLhVC16PRtaE=
github.com/networkservicemesh/api v0.0.0-20210323151719-3156ce7533e9/go.mod h1:qvxdY1Zt4QTtiG+uH1XmjpegeHjlt5Jj4A8iK55iJPI=
github.com/networkservicemesh/sdk v0.0.0-20210323152422-a9754c798b74 h1:wjNgZqAQTQ5p+MS/D30rhXOzrc8lISaA7vmijZMjPFg=
github.com/networkservicemesh/sdk v0.0.0-20210323152422-a9754c798b74/go.mod h1:Pz5dfF3iV3JaW1QwtTeZyU/s8Jd14lcgG4s9O9xDGnQ=
github.com/networkservicemesh/sdk-kernel v0.0.0-20210323152850-179cfcc94acf h1:zuFxFu1MewM8LCavTfxxIoj/oUPXajJDYCpncN4+Cr4=
github.com/networkservicemesh/sdk-kernel v0.0.0-20210323152850-179cfcc94acf/go.mod h1:6rm20vb51NjQhx2wlzA1+46REhs7gTsx974N+GPFl2Q=
github.com/networkservicemesh/sdk v0.0.0-20210325094830-8fe930cf2333 h1:KmYgEH7NaS8uqCiqaPINEDskfaqRvx95lkjAbA5h8MI=
github.com/networkservicemesh/sdk v0.0.0-20210325094830-8fe930cf2333/go.mod h1:Pz5dfF3iV3JaW1QwtTeZyU/s8Jd14lcgG4s9O9xDGnQ=
github.com/networkservicemesh/sdk-kernel v0.0.0-20210325095450-13d0dc75f274 h1:vl7t8crOn2itAezpwjSSGRuCItDNI8HtcC0cpnbvU8I=
github.com/networkservicemesh/sdk-kernel v0.0.0-20210325095450-13d0dc75f274/go.mod h1:n+iP9q6VCA3Y+T35s1wHsiLlPdtl9GMft+eibq6915M=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
Expand Down Expand Up @@ -167,7 +161,6 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
Expand Down Expand Up @@ -270,7 +263,6 @@ golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0 h1:SQvH+DjrwqD1hyyQU+K7Jeg
golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
Expand All @@ -294,7 +286,6 @@ google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQ
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.32.0 h1:zWTV+LMdc3kaiJMSTOFz2UgSBgx8RNQoTGiZu3fR9S0=
google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8=
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
Expand All @@ -306,12 +297,10 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA=
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
Expand Down
6 changes: 5 additions & 1 deletion pkg/networkservice/common/mechanisms/vfio/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"time"

"github.com/stretchr/testify/require"
"go.uber.org/goleak"
"golang.org/x/sys/unix"
"google.golang.org/grpc"

Expand All @@ -46,7 +47,7 @@ const (
cgroupDir = "cgroup_dir"
)

func testServer(ctx context.Context, tmpDir string) (grpc.ClientConnInterface, error) {
func testServer(ctx context.Context, tmpDir string) (*grpc.ClientConn, error) {
socketURL := &url.URL{
Scheme: "unix",
Path: filepath.Join(tmpDir, serverSocket),
Expand All @@ -70,6 +71,8 @@ func testServer(ctx context.Context, tmpDir string) (grpc.ClientConnInterface, e
}

func TestVFIOClient_Request(t *testing.T) {
defer goleak.VerifyNone(t, goleak.IgnoreCurrent())

ctx, cancel := context.WithTimeout(context.TODO(), 10*time.Second)
defer cancel()

Expand All @@ -80,6 +83,7 @@ func TestVFIOClient_Request(t *testing.T) {

cc, err := testServer(ctx, tmpDir)
require.NoError(t, err)
defer func() { _ = cc.Close() }()

client := chain.NewNetworkServiceClient(
vfio.NewClient(vfio.WithVFIODir(tmpDir), vfio.WithCgroupDir(cgroupDir)),
Expand Down
116 changes: 69 additions & 47 deletions pkg/networkservice/common/mechanisms/vfio/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,24 @@ import (
"time"

"github.com/google/uuid"
"github.com/stretchr/testify/require"
"golang.org/x/sys/unix"

"github.com/networkservicemesh/api/pkg/api/networkservice"
"github.com/networkservicemesh/api/pkg/api/networkservice/mechanisms/cls"
vfiomech "github.com/networkservicemesh/api/pkg/api/networkservice/mechanisms/vfio"
"github.com/networkservicemesh/sdk/pkg/networkservice/common/mechanisms"
"github.com/networkservicemesh/sdk/pkg/networkservice/core/chain"
"github.com/stretchr/testify/require"
"go.uber.org/goleak"
"golang.org/x/sys/unix"

"github.com/networkservicemesh/sdk-sriov/pkg/networkservice/common/mechanisms/vfio"
"github.com/networkservicemesh/sdk-sriov/pkg/tools/cgroup"
)

const (
testWait = 100 * time.Millisecond
testTick = testWait / 100
)

func testCgroups(ctx context.Context, t *testing.T, tmpDir string) (notAllowed, allowed, wider *cgroup.Cgroup) {
var err error

Expand All @@ -51,13 +56,35 @@ func testCgroups(ctx context.Context, t *testing.T, tmpDir string) (notAllowed,
require.NoError(t, allowed.Allow(1, 2))
require.NoError(t, allowed.Allow(3, 4))

require.Eventually(t, func() bool {
allowed12, allowedErr := allowed.IsAllowed(1, 2)
require.NoError(t, allowedErr)

allowed34, allowedErr := allowed.IsAllowed(3, 4)
require.NoError(t, allowedErr)

return allowed12 && allowed34
}, testWait, testTick)

wider, err = cgroup.NewFakeWideCgroup(ctx, filepath.Join(tmpDir, uuid.NewString()))
require.NoError(t, err)

require.Eventually(t, func() bool {
wider12, allowedErr := wider.IsAllowed(1, 2)
require.NoError(t, allowedErr)

wider34, allowedErr := wider.IsAllowed(3, 4)
require.NoError(t, allowedErr)

return wider12 && wider34
}, testWait, testTick)

return notAllowed, allowed, wider
}

func TestVFIOServer_Request(t *testing.T) {
defer goleak.VerifyNone(t, goleak.IgnoreCurrent())

ctx, cancel := context.WithTimeout(context.TODO(), 5*time.Second)
defer cancel()

Expand Down Expand Up @@ -99,40 +126,39 @@ func TestVFIOServer_Request(t *testing.T) {
require.Equal(t, uint32(3), mech.GetDeviceMajor())
require.Equal(t, uint32(4), mech.GetDeviceMinor())

require.Never(t, func() bool {
allowed12, err := allowed.IsAllowed(1, 2)
require.NoError(t, err)

allowed34, err := allowed.IsAllowed(3, 4)
require.NoError(t, err)
// Wait for the fileapi hooks
time.Sleep(testWait)

return !allowed12 || !allowed34
}, 100*time.Millisecond, 10*time.Millisecond)

require.Never(t, func() bool {
wider12, err := wider.IsAllowed(1, 2)
require.NoError(t, err)
allowed12, err := allowed.IsAllowed(1, 2)
require.NoError(t, err)
require.True(t, allowed12)

wider34, err := wider.IsAllowed(3, 4)
require.NoError(t, err)
allowed34, err := allowed.IsAllowed(3, 4)
require.NoError(t, err)
require.True(t, allowed34)

return !wider12 || !wider34
}, 100*time.Millisecond, 10*time.Millisecond)
wider12, err := wider.IsAllowed(1, 2)
require.NoError(t, err)
require.True(t, wider12)

require.Eventually(t, func() bool {
_12, err := notAllowed.IsAllowed(1, 2)
require.NoError(t, err)
wider34, err := wider.IsAllowed(3, 4)
require.NoError(t, err)
require.True(t, wider34)

_34, err := notAllowed.IsAllowed(3, 4)
require.NoError(t, err)
notAllowed12, err := notAllowed.IsAllowed(1, 2)
require.NoError(t, err)
require.True(t, notAllowed12)

return _12 && _34
}, 100*time.Millisecond, 10*time.Millisecond)
notAllowed34, err := notAllowed.IsAllowed(3, 4)
require.NoError(t, err)
require.True(t, notAllowed34)

require.NoError(t, ctx.Err())
}

func TestVFIOServer_Close(t *testing.T) {
defer goleak.VerifyNone(t, goleak.IgnoreCurrent())

ctx, cancel := context.WithTimeout(context.TODO(), 5*time.Second)
defer cancel()

Expand Down Expand Up @@ -166,34 +192,30 @@ func TestVFIOServer_Close(t *testing.T) {
require.NoError(t, err)

require.Never(t, func() bool {
notAllowed12, err := notAllowed.IsAllowed(1, 2)
require.NoError(t, err)
notAllowed12, allowedErr := notAllowed.IsAllowed(1, 2)
require.NoError(t, allowedErr)

notAllowed34, err := notAllowed.IsAllowed(3, 4)
require.NoError(t, err)
notAllowed34, allowedErr := notAllowed.IsAllowed(3, 4)
require.NoError(t, allowedErr)

return notAllowed12 || notAllowed34
}, 100*time.Millisecond, 10*time.Millisecond)

require.Never(t, func() bool {
wider12, err := wider.IsAllowed(1, 2)
require.NoError(t, err)
}, testWait, testTick)

wider34, err := wider.IsAllowed(3, 4)
require.NoError(t, err)

return !wider12 || !wider34
}, 100*time.Millisecond, 10*time.Millisecond)
wider12, err := wider.IsAllowed(1, 2)
require.NoError(t, err)
require.True(t, wider12)

require.Eventually(t, func() bool {
allowed12, err := allowed.IsAllowed(1, 2)
require.NoError(t, err)
wider34, err := wider.IsAllowed(3, 4)
require.NoError(t, err)
require.True(t, wider34)

allowed34, err := allowed.IsAllowed(3, 4)
require.NoError(t, err)
allowed12, err := allowed.IsAllowed(1, 2)
require.NoError(t, err)
require.False(t, allowed12)

return !allowed12 && !allowed34
}, 100*time.Millisecond, 10*time.Millisecond)
allowed34, err := allowed.IsAllowed(3, 4)
require.NoError(t, err)
require.False(t, allowed34)

require.NoError(t, ctx.Err())
}
1 change: 1 addition & 0 deletions pkg/tools/cgroup/cgroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ func (c *Cgroup) compareTo(dev *device) (isAllowed, isWider bool, err error) {
if err != nil {
return false, false, err
}
defer func() { _ = file.Close() }()

scanner := bufio.NewScanner(file)
for scanner.Scan() {
Expand Down
5 changes: 4 additions & 1 deletion pkg/tools/cgroup/dir_path.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,19 @@ var devicesCgroup = regexp.MustCompile("^[1-9][0-9]*?:devices:(.*)$")

// DirPath returns cgroup dir path pattern matching all pod containers
func DirPath() (string, error) {
cgroupInfo, err := os.OpenFile("/proc/self/cgroup", os.O_RDONLY, 0)
cgroupInfo, err := os.Open("/proc/self/cgroup")
if err != nil {
return "", errors.Wrap(err, "error opening cgroup info file")
}
defer func() { _ = cgroupInfo.Close() }()

for scanner := bufio.NewScanner(cgroupInfo); scanner.Scan(); {
line := scanner.Text()
if devicesCgroup.MatchString(line) {
return podDirPath(devicesCgroup.FindStringSubmatch(line)[1]), nil
}
}

return "", errors.New("can't find out cgroup directory")
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/tools/cgroup/file_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func inputFileAPI(ctx context.Context, filePath string, consumer func(string)) e
return err
}

fd, err := unix.Open(filePath, os.O_RDWR, 0)
fd, err := unix.Open(filePath, unix.O_RDWR|unix.O_NONBLOCK, 0)
if err != nil {
return err
}
Expand Down

0 comments on commit 310f6ac

Please sign in to comment.