code: def test_simple_bind_gradient_graph_possible_with_cycle():
      """This is a special case that results in a cycle in the gradient graph
      before this bug was fixed. With the following symbol, the node entries
      passed into function AggregateGradient(std::vector<nnvm::NodeEntry>&& v)
      are the outputs of the same node. Therefore, adding a node to the
      control_deps of itself must be skipped.
      See GitHub issue:
      https://github.com/apache/mxnet/issues/8029
      for more details."""
      data = mx.symbol.Variable("data")
      res = data + data + data + data + data + data + data + data
      res._simple_bind(ctx=mx.cpu(), data=(1,))
  
imports: import copy
  import sys
  import os
  import logging
  import re
  import json
  import mxnet
  import numpy
  from common import assertRaises, models, TemporaryDirectory
  from mxnet.base import NotImplementedForSymbol
  from mxnet.test_utils import discard_stderr, rand_shape_nd, use_np, environment
  from mxnet.util import np_shape
  import pickle
label_desc: Use image node_id 17 for calling a global function with example usage: test_simple_bind_gradient_graph_possible_with_cycle() without return types