Skip to content
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

ERROR: too many states (abstraction error?) in function strptime_internal #22

Closed
ms609 opened this issue Jul 9, 2020 · 1 comment
Closed

Comments

@ms609
Copy link

ms609 commented Jul 9, 2020

I am seeing "ERROR: too many states (abstraction error?) in function strptime_internal" when rchking packages (more than one) on rhub's ubuntu-rchk machine.

I can't find any clues in the documentation to interpret what this message means. Is it a false alarm? Could you point me in the right direction?

Thanks!

@kalibera
Copy link
Owner

kalibera commented Jul 9, 2020

This means the function is too complicated for the tool to analyze. In short, you can ignore this but you should keep in mind that the function is not analyzed/checked (to the level other functions, not showing this error, are). Also, in this case, it is an internal function in R, not in your package.

The tool is building a model of what the function does, the model has some states, and in the case of this function, there are too many of them. One could build rchk with a higher limit for the number of states, but that often does not help in practice when the abstractions used don't allow to represent the function using a finite model. Often this happens when the protection stack depth increases with every loop iteration, but is not using a protection counter variable. This can happen also when say something happens (protection of list head, etc) only in one iteration, but the tool is not smart enough to see that, so it conservatively assumes it is happening in each iteration.

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

No branches or pull requests

2 participants