Skip to content

UNAVAILABLE: Network closed for unknown reason #9363

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

Open
robocon20x opened this issue Mar 31, 2025 · 2 comments
Open

UNAVAILABLE: Network closed for unknown reason #9363

robocon20x opened this issue Mar 31, 2025 · 2 comments
Labels

Comments

@robocon20x
Copy link

robocon20x commented Mar 31, 2025

Describe the bug

Hi dev team, I got this bug error since update 24.1.0, when create new gcpr dgraph client and send query to Dgraph, it will the error

Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE: Network closed for unknown reason
	at io.grpc.Status.asRuntimeException(Status.java:532)
	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:481)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.census.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:814)
	at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
	at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
	at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
	at io.grpc.census.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:494)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:564)
	at io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:72)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:729)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:710)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

there is my example query

upsert{

	query {
 
    var(func: eq(id, "buyeruid")) {

      uid_0 as uid

      is_identified_as {

        kuid_0 as uid

        ~is_identified_as {

          all_uid_0 as uid

         }

       }

     }
 
 
    var(func: uid(earliestKuid)) @filter(uid(kuid_0)) {

      isEqual_0 as uid

     }
 
 
    var(func: eq(id, "id1")) {

      uid_1 as uid

      is_identified_as {

        kuid_1 as uid

        ~is_identified_as {

          all_uid_1 as uid

         }

       }

     }
 
 
    var(func: uid(earliestKuid)) @filter(uid(kuid_1)) {

      isEqual_1 as uid

     }
 
 
    var(func: uid(kuid_0,kuid_1), orderasc: inserted_time, first: 1) {

      earliestKuid as uid

      kuid

      }


    }

  mutation @if(gt(len(uid_0), 0) AND eq(len(isEqual_0), 0)) {

		set{

			uid(all_uid_0) <is_identified_as> uid(earliestKuid) .

      uid(all_uid_0) <was_identified_as> uid(kuid_0) .

      uid(all_uid_0) <is_identified_as> uid(kuid_0) .

    }

  }

  mutation @if(gt(len(uid_0), 0) AND eq(len(isEqual_0), 0)) {

		set{

			uid(all_uid_0) <is_identified_as> uid(earliestKuid) .

      uid(all_uid_0) <was_identified_as> uid(kuid_0) .

    }

    delete{

			uid(all_uid_0) <is_identified_as> uid(kuid_0) .

    }

  }

	mutation @if(eq(len(uid_0), 0)) {

		set{

			uid(uid_0) <dgraph.type> "Identifier" .

     uid(uid_0) <id> "buyeruid" .

     uid(uid_0) <id_type> "COOKIE" .

     uid(uid_0) <id_provider> "KNOREX" .

     uid(uid_0) <data_source> "BidEvent" .

     uid(uid_0) <opted_out> "false" .

     uid(uid_0) <inserted_time> "1742900770151" .

     uid(uid_0) <expired_time> "1790334370151" .

    uid(uid_0) <is_identified_as> uid(earliestKuid) .

    }

  }


  mutation @if(gt(len(uid_1), 0) AND eq(len(isEqual_1), 0)) {

		set{

			uid(all_uid_1) <is_identified_as> uid(earliestKuid) .

			uid(all_uid_1) <was_identified_as> uid(kuid_1) .

    }

    delete{

			uid(all_uid_1) <is_identified_as> uid(kuid_1) .

    }

  }

	mutation @if(eq(len(uid_1), 0)) {

		set{

			uid(uid_1) <dgraph.type> "Identifier" .

     uid(uid_1) <id> "id1" .

     uid(uid_1) <id_type> "UID2" .

     uid(uid_1) <id_provider> "UID2" .

     uid(uid_1) <data_source> "BidEvent" .

     uid(uid_1) <opted_out> "false" .

     uid(uid_1) <inserted_time> "1742900770151" .

     uid(uid_1) <expired_time> "1790334370151" .

    uid(uid_1) <is_identified_as> uid(earliestKuid) .

    }

  }


}
 

this error cause both from the UI ratel and Dgraph java client. Of course we can handle it by retry, but it will slower our process.

while that alpha container will throw this error

2025-03-31 15:59:57 alpha-1          | panic: runtime error: index out of range [1] with length 0
2025-03-31 15:59:57 alpha-1          | 
2025-03-31 15:59:57 alpha-1          | goroutine 914 [running]:
2025-03-31 15:59:57 alpha-1          | github.com/hypermodeinc/dgraph/v24/edgraph.verifyUniqueWithinMutation(0x40180fa900)
2025-03-31 15:59:57 alpha-1          |  /runner/_work/dgraph/dgraph/edgraph/server.go:2161 +0x2dc
2025-03-31 15:59:57 alpha-1          | github.com/hypermodeinc/dgraph/v24/edgraph.(*Server).doMutate(0x246d000?, {0x246d000, 0x4018424690}, 0x40180fa900, 0x401843c280)
2025-03-31 15:59:57 alpha-1          |  /runner/_work/dgraph/dgraph/edgraph/server.go:584 +0xc8
2025-03-31 15:59:57 alpha-1          | github.com/hypermodeinc/dgraph/v24/edgraph.(*Server).doQuery(0x353c380, {0x246d000, 0x40187487e0}, 0x40176ed6d0)
2025-03-31 15:59:57 alpha-1          |  /runner/_work/dgraph/dgraph/edgraph/server.go:1402 +0xac4
2025-03-31 15:59:57 alpha-1          | github.com/hypermodeinc/dgraph/v24/edgraph.(*Server).QueryNoGrpc(0x353c380, {0x246d000?, 0x4018424420?}, 0x4018401100)
2025-03-31 15:59:57 alpha-1          |  /runner/_work/dgraph/dgraph/edgraph/server.go:1252 +0x250
2025-03-31 15:59:57 alpha-1          | github.com/hypermodeinc/dgraph/v24/edgraph.(*Server).Query(0x3079d90?, {0x246d000, 0x4018424420}, 0xffff71c556b8?)
2025-03-31 15:59:57 alpha-1          |  /runner/_work/dgraph/dgraph/edgraph/server.go:1218 +0x28
2025-03-31 15:59:57 alpha-1          | github.com/dgraph-io/dgo/v240/protos/api._Dgraph_Query_Handler.func1({0x246d000?, 0x4018424420?}, {0x20a7520?, 0x4018401100?})
2025-03-31 15:59:57 alpha-1          |  /home/runner/go/pkg/mod/github.com/dgraph-io/dgo/[email protected]/protos/api/api_grpc.pb.go:188 +0xd0
2025-03-31 15:59:57 alpha-1          | github.com/hypermodeinc/dgraph/v24/ee/audit.AuditRequestGRPC({0x246d000?, 0x4018424420?}, {0x20a7520?, 0x4018401100?}, 0x80?, 0x20b6b40?)
2025-03-31 15:59:57 alpha-1          |  /runner/_work/dgraph/dgraph/ee/audit/interceptor_ee.go:79 +0xd4
2025-03-31 15:59:57 alpha-1          | github.com/dgraph-io/dgo/v240/protos/api._Dgraph_Query_Handler({0x20c0bc0, 0x353c380}, {0x246d000, 0x4018424420}, 0x4018401080, 0x221cf58)
2025-03-31 15:59:57 alpha-1          |  /home/runner/go/pkg/mod/github.com/dgraph-io/dgo/[email protected]/protos/api/api_grpc.pb.go:190 +0x148
2025-03-31 15:59:57 alpha-1          | google.golang.org/grpc.(*Server).processUnaryRPC(0x40001ac000, {0x246d000, 0x40184242a0}, 0x4018233da0, 0x400b210180, 0x30a56d8, 0x0)
2025-03-31 15:59:57 alpha-1          |  /home/runner/go/pkg/mod/google.golang.org/[email protected]/server.go:1400 +0xcb0
2025-03-31 15:59:57 alpha-1          | google.golang.org/grpc.(*Server).handleStream(0x40001ac000, {0x246e088, 0x4017d51040}, 0x4018233da0)
2025-03-31 15:59:57 alpha-1          |  /home/runner/go/pkg/mod/google.golang.org/[email protected]/server.go:1810 +0x910
2025-03-31 15:59:57 alpha-1          | google.golang.org/grpc.(*Server).serveStreams.func2.1()
2025-03-31 15:59:57 alpha-1          |  /home/runner/go/pkg/mod/google.golang.org/[email protected]/server.go:1030 +0x8c
2025-03-31 15:59:57 alpha-1          | created by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 281
2025-03-31 15:59:57 alpha-1          |  /home/runner/go/pkg/mod/google.golang.org/[email protected]/server.go:1041 +0x13c

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

A clear and concise description of what you expected to happen.

Screenshots

If applicable, add screenshots to help explain your problem.

Environment

  • OS: macOS, Ubuntu
  • Language Java
  • Version 24.1.1

Additional context

Add any other context about the problem here.

@robocon20x robocon20x added the bug label Mar 31, 2025
Copy link

linear bot commented Mar 31, 2025

@robocon20x
Copy link
Author

I see that whenever this error orrcor, it will show the exception from this code line

pred1 := qc.gmuList[gmuIndex].Set[rdfIndex]

2157 pred1 := qc.gmuList[gmuIndex].Set[rdfIndex]

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

No branches or pull requests

1 participant