问题标签 [infinite-recursion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
106 浏览

python - 排序超过 36 个元素时,快速排序算法崩溃

所以我想为了个人练习,我会在 Python 3.6 中编写一个快速排序算法。算法并不难,而且相当容易理解。为了让事情变得更有趣,我想在原地对其进行排序不分配与输入一样多的空间)。我意识到这不是真的,因为我仍然分配 log(n) 内存,但这只是因为在调用递归之前变量没有被释放。无论如何,我遇到了一个特殊的问题,我的算法对最多 36 个元素的数组进行排序,不会失败而且速度很快。但是,当我尝试对长度为 37 及以上的数组进行排序时,它突然陷入无限递归循环并在 1000 次递归后崩溃。

有人可以指出我的问题吗?我似乎找不到它。

0 投票
1 回答
6862 浏览

r - 错误:评估嵌套太深:无限递归/选项(表达式=)?在 R3.3.2 中

我正在尝试使用一个函数来读取不同的模型。在没有函数的情况下使用下面的代码是可行的。当我使用该函数并调用它时,我会收到错误消息

谁能告诉我为什么?

0 投票
3 回答
13885 浏览

java - Spring Data JPA - 无限递归的双向关系

首先,这是我的实体。

播放器

团队

正如许多主题已经说明的那样,您可以使用 Jackson 以多种方式避免 WebService 中的 StackOverflowExeption。

这很酷,除了 JPA 在序列化之前仍然构造一个无限递归到另一个实体的实体。这很丑陋,因为请求需要更长的时间。检查此屏幕截图:IntelliJ 调试器

有没有办法解决它?知道我想要不同的结果取决于端点。例子 :

  • 端点/teams/{id} => Team={id..., members=[Player={id..., team=null }]}
  • 端点/members/{id} => Player={id..., team={id..., members=null }}

谢谢!

编辑:也许问题不是很清楚,给出我得到的答案,所以我会尽量准确。

我知道可以使用 Jackson(@JSONIgnore、@JsonManagedReference/@JSONBackReference 等)或通过映射到 DTO 来防止无限递归。我仍然看到的问题是:以上都是查询后处理。Spring JPA 返回的对象仍然是(例如)一个 Team,包含玩家列表、包含团队、包含玩家列表等。

我想知道是否有办法告诉 JPA 或存储库(或任何东西)不要一遍又一遍地绑定实体内的实体?

0 投票
1 回答
809 浏览

javascript - 如何重置firebase服务器以允许功能部署?

使用firebase deploy --only functions我在我的反应代码中看到一个错误并键入 control-C 以从我的 Mac 中终止部署。现在,当尝试再次部署到 Google 服务器时,会出现错误:

如何重置 firebase 服务器以便再次部署我的功能?进行全面部署也无济于事,在功能阶段仍然会出现相同的错误。回滚部署没有帮助,也没有删除服务器上的所有功能。

有没有一种安全的方法来杀死部署?


另一个用户能够部署,此时错误已更改:

又一次重试,又回到了第一个关于调用栈溢出的错误。


有没有办法在Maximum call stack sized exceeded发生时获取调用堆栈跟踪?

0 投票
0 回答
247 浏览

apache-spark - Amazon EMR 集群中的无限递归 (StackOverflowError)

我们在 Amazon EMR 集群上运行 Spark 应用程序。我们的代码接收 JSON 数据,将其转换为数据帧,对其执行 Spark SQL 转换,然后将生成的数据帧写入 csv 文件(至少,它会尝试这样做)。但是,在 EMR 集群上执行代码时,我们会收到以下错误:

...ETC

任何人都可以帮助我们吗?非常感谢您提前。

0 投票
0 回答
71 浏览

jackson - 处理杰克逊双向引用的最佳方式

我正在尝试使用 Jackson 为我们的核心组件构建 rest API,但我遇到了一些对象出现此异常的问题:

javax.ws.rs.ProcessingException:com.fasterxml.jackson.databind.JsonMappingException:无限递归(StackOverflowError)

经过搜索,我知道了几种解决方法。例如 https://www.baeldung.com/jackson-bidirectional-relationships-and-infinite-recursion

我使用了@JsonIdentityInfo,它对我来说很好用,但问题是什么是更好的方法?

在这篇文章中: Infinite Recursion with Jackson JSON and Hibernate JPA issue

有一种说法需要谨慎使用@JsonIdentityInfo,因为它可能会导致问题:

在这种情况下,您必须小心,因为您可能需要多次读取对象的属性(例如,在包含多个共享同一卖家的产品的产品列表中),并且此注释会阻止您这样做。我建议始终查看 firebug 日志以检查 Json 响应并查看代码中发生了什么。

我也读到了这篇文章:http ://springquay.blogspot.com/2016/01/new-approach-to-solve-json-recursive.html

@JsonIdentityInfo

我知道@JsonIdentityInfo 是 Jackson 2 中的较新方法。

优点是它需要最少的代码更改(只需将此注释放在有问题的对象模型中,而无需从另一端处理它。

缺点说明

@JsonIgnoreProperties 它需要更改更多类,而不仅仅是注释基类,而且我不确定如果我有多个从该对象模型继承的类,它将如何工作。

0 投票
1 回答
1063 浏览

macros - Rust 中的无限递归派生宏?

我在 Rust 的派生宏中做了以下尝试:

目标是deserialize基于另一个特征为Configurable.

但是,编译器对我的报价声明有以下抱怨:

扩展宏时达到递归限制stringify

我在这里看不到递归。我什至没有使用stringify!什么叫什么在这里无限?

0 投票
2 回答
538 浏览

python - “超出最大递归深度”试图调用重载函数

我正在设置自定义用户身份验证,当我尝试在 powershell 中创建超级用户时,它给了我一个错误“[Previous line repeated 986 more times] RecursionError: maximum recursion depth exceeded”,它指的是我的 create_superuser()

模型.py

0 投票
1 回答
94 浏览

haskell - Arrow 库中“first”的实现

我不明白first库中的实现。

first似乎是用递归定义的***——我看不到递归何时结束!?

first f(f *** id)哪个是(first f >>> arr swap >>> first id...),新的first将是另一个(*** id),依此类推...

0 投票
1 回答
144 浏览

java - 如何解决此堆栈溢出错误?

StackOverFlow当我尝试运行我的井字游戏程序时,我正在努力解决这个异常。

通过阅读堆栈跟踪,我知道StackOverFlow错误是循环关系的结果。这是因为当我miniFrame在构造函数内部实例化类时TicTacToeFrame,一个TicTacToeFrame对象被用作miniFrame构造函数的参数。结果,这会导致无限递归。

TicTacToeFrame构造函数实例化miniFrame dialogBox = new miniFrame (this).

这是将miniFrame对象TicTacToeFrame作为参数的构造函数。但是我不明白为什么JVM会StackOverFlow在第9行发现错误:

我可以使用的另一种解决方案是-Xss使用命令行增加堆栈帧大小的标志。但我觉得这可能是一种逃避。