标签: stack-overflow

Spring oauth2中的StackOverflowError,带有自定义ClientDetailsS​​ervice

我自己实现了ClientDetailsS​​ervice:

@Service
public class JpaClientDetailsService implements ClientDetailsService {
    @Autowired
    private ClientRepository clientRepositoy;

    @Override
    public ClientDetails loadClientByClientId(String clientId) throws ClientRegistrationException {
        ClientDetails client = clientRepositoy.findOne(clientId);
        if (client == null) {
            throw new ClientRegistrationException(String.format("Client with id %s not found", clientId));
        }
        return client;
    }
}
Run Code Online (Sandbox Code Playgroud)

ClientRepository是标准的JpaRepository.

我像这样配置了AuthorizationServerConfigurerAdapter:

@Configuration
@EnableAuthorizationServer
@EnableResourceServer
public class OAuth2ServerConfig extends AuthorizationServerConfigurerAdapter {
    @Autowired
    private AuthenticationManager authenticationManager;

    @Autowired
    private ClientDetailsService clientDetailsService;

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints.authenticationManager(authenticationManager);
    }

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception { …
Run Code Online (Sandbox Code Playgroud)

stack-overflow spring-security-oauth2

12
推荐指数
2
解决办法
4115
查看次数

为什么以下代码崩溃javac?可以做些什么呢?

我正在阅读这篇关于"Java中的奇怪事物"的文章,我遇到了一个有趣的概念:不可判定的类型.

考虑以下三个类/接口:

public interface Type<T> { }
Run Code Online (Sandbox Code Playgroud)
public class D<P> implements Type<Type<? super D<D<P>>>> { }
Run Code Online (Sandbox Code Playgroud)
public class WildcardTest {
  Type<? super D<Byte>> d = new D<Byte>();
}
Run Code Online (Sandbox Code Playgroud)

显然问题是它是否D是不可判定的Type<? super D<Byte>>; 谁能进一步解释这个?

javac 1.8.0_60StackOverflowError尝试编译时抛出很长时间WildcardTest:

The system is out of resources.
Consult the following stack trace for details.
java.lang.StackOverflowError
        at com.sun.tools.javac.code.Types$UnaryVisitor.visit(Types.java:4640)
        at com.sun.tools.javac.code.Types$26.visitClassType(Types.java:3834)
        at com.sun.tools.javac.code.Types$26.visitClassType(Types.java:3826)
        at com.sun.tools.javac.code.Type$ClassType.accept(Type.java:778)
        at com.sun.tools.javac.code.Types$UnaryVisitor.visit(Types.java:4640)
        at com.sun.tools.javac.code.Types$26.visitClassType(Types.java:3839)
        at com.sun.tools.javac.code.Types$26.visitClassType(Types.java:3826)
        at com.sun.tools.javac.code.Type$ClassType.accept(Type.java:778)
        at com.sun.tools.javac.code.Types$UnaryVisitor.visit(Types.java:4640)
        at com.sun.tools.javac.code.Types$26.visitClassType(Types.java:3839)
        at …
Run Code Online (Sandbox Code Playgroud)

java stack-overflow generics types compilation

12
推荐指数
1
解决办法
727
查看次数

在Rust中调试堆栈溢出是否有任何标准方法?

获得回溯会很好.

$ cargo test
    Running target/debug/partition_ops-b31bcf7b82e2e8d5

running 1 test

thread 'create_small' has overflowed its stack
Process didn't exit successfully: `/home/dhardy/other/pippin/target/debug/partition_ops-b31bcf7b82e2e8d5` (signal: 11)

To learn more, run the command again with --verbose.
Run Code Online (Sandbox Code Playgroud)

stack-overflow rust

12
推荐指数
2
解决办法
1155
查看次数

使用Visual Studio在C++中建议chkstk.asm stackoverflow异常

我正在使用合并排序的实现.我正在尝试使用C++ Visual Studio 2010(msvc).但是当我使用300000个整数数组进行计时时,它显示了一个未处理的stackoverflow异常并将我带到一个名为"chkstk.asm"的只读文件.我将尺寸缩小到200000并且有效.同样的代码使用C-free 4编辑器(mingw 2.95)而没有任何问题,而大小是400000.你有任何建议让代码在Visual Studio中工作吗?

可能是mergesort中的递归导致了问题.

c++ stack-overflow recursion visual-studio visual-c++

11
推荐指数
3
解决办法
1万
查看次数

耙子流产了!堆栈级别太深

可能重复:
Rails 3.0和Ruby 1.9.2rc:Rake命令返回'已初始化的常量'和堆栈级别太深的错误.有任何想法吗

我在Windows Vista上使用Ruby版本1.9.1.我正在使用任何rake命令得到rake aborted错误.这不会发生在我的所有app文件夹中.它只发生在特定的应用程序文件夹中.

C:\rails_project\stunetwork>rake db:reset
(in C:/rails_project/stunetwork)
rake aborted!
stack level too deep
C:/Ruby191/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rak
efile'
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

ruby stack-overflow ruby-1.9.1

11
推荐指数
1
解决办法
1万
查看次数

C++标准对堆栈溢出有什么看法?

我看了一下C++ 0x标准草案,据我所知,堆栈溢出没有任何内容.搜索"堆栈溢出"不会产生任何结果,并且搜索"堆栈"我只获得了堆栈展开和std :: stack的引用.这是否意味着没有符合C++标准的实现,因为当本地对象(例如巨大的本地数组)耗尽内存时,没有机制允许处理错误?

这个问题的答案表明,至少C标准没有提到堆栈溢出.

要使问题具体,请考虑此计划

// Program A
int identity(int a) {
  if (a == 0)
    return 0;
  char hugeArray[1024 * 1024 * 1024]; // 1 GB
  return identity(a - 1) + 1;
}
int main() {
  return f(1024 * 1024 * 1024);
}
Run Code Online (Sandbox Code Playgroud)

和这个程序

// program B
int main() {
  return 1024 * 1024 * 1024;
}
Run Code Online (Sandbox Code Playgroud)

我认为C++标准不允许任何C++实现在这两个程序上做一些明显不同的事情.实际上程序A不会在任何现代机器上运行,因为它在堆栈上分配了一个exabyte内存(想象一下该函数实际上使用了巨大的数组,因此编译器无法以静默方式将其删除而不会产生不良影响).C++标准是否允许程序A失败?

编辑:问题不在于标准是否应该定义堆栈溢出会发生什么,问题是它说什么,如果有的话.

c++ stack-overflow undefined-behavior

11
推荐指数
1
解决办法
387
查看次数

Haskell:重复一个函数很多次而没有stackoverflow

作为Haskell的新手,我试图多次迭代一个函数(例如,逻辑映射).在命令式语言中,这将是一个简单的循环,但在Haskell中,我最终会出现堆栈溢出.以此代码为例:

main  = print $ iter 1000000

f x = 4.0*x*(1.0-x)

iter :: Int -> Double
iter 0 = 0.3
iter n = f $ iter (n-1)
Run Code Online (Sandbox Code Playgroud)

对于少量迭代,代码可以工作,但是对于一百万次迭代,我得到了堆栈空间溢出:

Stack space overflow: current size 8388608 bytes.
Use `+RTS -Ksize -RTS' to increase it.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样.这里的尾递归应该没问题.也许问题是懒惰的评价.我尝试了几种方法来强制进行严格的评估,通过插入$!seq在不同的位置,但没有成功.

什么是Haskell迭代函数很多次的方法?

我已经尝试过相关帖子的建议:这里这里,但我总是以堆栈流程结束大量的迭代,例如main = print $ iterate f 0.3 !! 1000000.

stack-overflow haskell

11
推荐指数
1
解决办法
3564
查看次数

迭代比递归更快,还是更不容易出现堆栈溢出?

我知道你可以使用一个简单的循环来重写一个递归函数,使用一个数组作为"剩下要完成的工作"的先进先出队列.我听说这使得堆栈溢出的可能性降低.

但是如果堆栈溢出不是问题(因为你没有非常深地递归),有没有理由更喜欢迭代而不是递归?它更快吗?

我最感兴趣的是V8上的JavaScript.

javascript stack-overflow iteration recursion

11
推荐指数
1
解决办法
5926
查看次数

为什么具有PEVerified Stack Overflow Scenario(maxstack)的程序不会崩溃CLR?

我可以编写,编译并成功运行以下IL程序,其.maxstack大小设置为1,这太低了,因为程序在一个时间点在堆栈上有两个值(即2 + 2 == 4).该程序在CLR 中不崩溃,并以"Hello World"的所有预期输出后跟数字4完成执行.

但是,该程序(正确地)不会传递PEVerify,它指出了堆栈溢出异常,并带有以下消息:

Microsoft(R).NET Framework PE Verifier.版本4.0.30319.18020版权所有(c)Microsoft Corporation.版权所有.

[IL]:错误:[C:\ tmp\hello.exe:HelloWorld1.Program :: Main] [偏移量0x00000011]堆栈溢出.1错误验证hello.exe

为什么它不会在CLR中崩溃?

.assembly extern mscorlib {}
.assembly SampleIL {
    .ver 1:0:1:0
}

.class private auto ansi beforefieldinit HelloWorld1.Program
    extends [mscorlib]System.Object
{
    // Methods
    .method private hidebysig static 
        void Main (
            string[] args
        ) cil managed 
    {
        // Method begins at RVA 0x2050
        // Code size 13 (0xd)
        .maxstack 1 // **** NOTE THIS LINE *****
        .entrypoint

        IL_0000: nop
        IL_0001: ldstr "hello world" …
Run Code Online (Sandbox Code Playgroud)

stack-overflow clr cil peverify

11
推荐指数
1
解决办法
2313
查看次数

测试浮点数NaN会导致堆栈溢出

C#,VS 2010

我需要确定浮点值是否为NaN.

使用测试NaN的浮点数

float.IsNaN(aFloatNumber) 
Run Code Online (Sandbox Code Playgroud)

堆栈溢出崩溃.

那样做

aFloatNumber.CompareTo(float.NaN).
Run Code Online (Sandbox Code Playgroud)

以下不会崩溃,但它无用,因为它返回NaN,无论如何:

aFloatNumber - float.NaN 
Run Code Online (Sandbox Code Playgroud)

搜索"堆栈溢出"会返回有关此网站的结果,而不是实际堆栈溢出的结果,因此我找不到相关的答案.

为什么我的应用程序在测试NaN时会进入堆栈溢出?

编辑:调用堆栈:

在此输入图像描述

编辑:我的代码中显然有些东西:这句话:

bool aaa = float.IsNaN(float.NaN);
Run Code Online (Sandbox Code Playgroud)
  • 在InitializeComponent()之后,在应用程序的构造函数中正常工作;
  • 在InitializeComponent()之后立即在自定义控件的类的构造函数中正常工作;
  • 但是在类中的事件处理程序中崩溃以进行自定义控件.

所以,这就是我在做的事情:

  • 抽象自定义控件:公共抽象部分类ConfigNumberBaseBox:TextBox
  • 有一个Validating事件处理程序ValidateTextBoxEntry
  • ValidateTextBoxEntry在ConfigNumberBaseBox类中定义
  • 继承自ConfigNumberBaseBox的自定义控件:public partial class ConfigTemperBox:ConfigNumberBaseBox
  • 运行应用程序
  • 编辑完ConfigTemperBox控件后,将调用ValidateTextBoxEntry
  • ValidateTextBoxEntry运行正常,直到遇到float.IsNaN
  • 堆栈溢出

编辑:

Debug.WriteLine()显示代码只执行一次:没有递归.

编辑:

这有效:

float fff = 0F;
int iii = fff.CompareTo(float.PositiveInfinity);
Run Code Online (Sandbox Code Playgroud)

这崩溃了:

float fff = 0F;
int iii = fff.CompareTo(float.NaN);
Run Code Online (Sandbox Code Playgroud)

c# stack-overflow nan

11
推荐指数
3
解决办法
1034
查看次数