- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为了测试日期/时间设置为过去或 future 的 java 代码,我想尝试 libfaketime(目前我们只是调整系统时钟,但它会导致很多麻烦,例如无法正常工作的 kerberos 等)。
我尝试使用这个小测试程序:
$ cat time.java
import java.util.*;
class TimeTest {
public static void main(String[] s) {
long timeInMillis = System.currentTimeMillis();
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timeInMillis);
java.util.Date date = cal.getTime();
System.out.println("Date: " + date);
}
}
然后执行这个:
LD_ASSUME_KERNEL=2.6.18 LD_PRELOAD=/usr/lib64/libfaketime.so.1 FAKETIME="-15d" /opt/IBM/WebSphere/AppServer/java_1.7_64/bin/java TimeTest
Invalid clock_id for clock_gettime: -172402[root@myhost ~]#
但是如您所见,我只收到一条错误消息。测试在 RHEL 6.5 服务器上执行,内核 2.6.32-431 和libfaketime 0.9.6
您对我如何解决这个问题有什么建议吗?我也有兴趣了解您在 RHEL 上使用 libfaketime 和 java 的经验。
我还报告了这个问题:https://github.com/wolfcw/libfaketime/issues
最好的问候,
二灵
最佳答案
我在 IBM JVM 1.7.0 中也观察到这种不正确的行为,而在 Oracle JVM 1.6.0 中这按预期工作。解释是 IBM JVM 显然有一个内部错误,它通过调用 clock_gettime 表现出来。使用不正确的 clock_id 参数(随机负值)的系统调用。解决方法(不是修复)是修改 libfaketime.c在 fake_clock_gettime 函数中将 clock_id 重置为有效值。
case FT_START_AT: /* User-specified offset */
if (user_per_tick_inc_set)
{
/* increment time with every time() call*/
next_time(tp, &user_per_tick_inc);
}
else
{
if (clk_id < 0) { // jvm calls clock_gettime() with invalid random negative clock_id value
clk_id = CLOCK_REALTIME;
}
switch (clk_id)
// the rest is the same
这将防止 libfaketime.so.1 库因您观察到的错误而存在
printf("\nInvalid clock_id for clock_gettime: %d", clk_id);
exit(EXIT_FAILURE);
请注意,此变通办法有一个缺点,即如果 JVM 错误地向系统询问无效的 clockid,我们将假设有效的 clockid,这可能不是应用程序所期望的。
关于java - RHEL 5/RHEL 6 上的 libfaketime 和 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26602617/
我想把这个 Dockerfile 带到这里 - https://github.com/ForgeRock/forgeops/blob/release/6.5.0/docker/util/Dockerf
我最近将许多网站从一台运行 RHEL 6 的服务器迁移到一台运行 RHEL 7 的服务器。一个站点使用 pdftk,它依赖于 libgcj,显然 RHEL 7 不再支持它。(至少,我有没有找到广告它的
为了测试日期/时间设置为过去或 future 的 java 代码,我想尝试 libfaketime(目前我们只是调整系统时钟,但它会导致很多麻烦,例如无法正常工作的 kerberos 等)。 我尝试使
我有一堆使用 gcc 4.7 在 RHEL 7 中构建的库。以下是否可能 1) Can the binary be executed in RHEL 6 host without re-compili
所有配置都相同。只是尝试从 A 移动到 B。但是在 B 服务器上,我在尝试/测试登录时收到以下错误: FTP client login error 任何解决方案都将受到高度赞赏。 最诚挚的问候,卡洛尔
我们的业务需要在一个平台上编译我们的软件并在另一个平台上交付。这一直很好,直到我们需要编译 mysqlclient 以连接到数据库。 我想知道是否有其他人尝试过针对 mysqlclient 进行编译并
我们有一个基于 32 位 CentOS 4.8(相当于 Red Hat Enterprise Linux (RHEL) 4 update 8)的商业应用程序。 默认的 gcc 编译器是 3.4.6 我
我是计算机科学新手。我的项目需要使用基于 CLIPS 规则的引擎,它在 RHEL 盒子中运行。查看剪辑的下载链接( http://sourceforge.net/projects/clipsrules
RHEL7 中使用了firewalld代替了原来的iptables,操作设置和原来有点不同: 查看防火墙状态:systemctl status firewalld 启动防火墙:systemctl st
MySQL数据库是Linux操作系统上用得最多的数据库系统,它可以非常方便的与其它服务器集成在一起,如Apache、Vsftpd、Postfix等。下面介绍RHEL 6平台MySQL数据库服务器的安
我正在尝试在 RHEL 服务器上安装 certbot。 Instructions to enable epel-release # yum install https://dl.fedoraproje
我正在开发一个在 Linux (RHEL 7) 上归档数据的应用程序。该应用程序保留源文件并将 tar/tar.gz 放在存档文件夹中。当我的数据很少时,它工作正常。但是当我尝试处理大数据时,我遇到了
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
所以,我正在尝试更改 RHEL 中的存储库,但我总是收到以下消息,但不知道这意味着什么。 Loaded plugins: product-id, security, subscription-mana
我正在 RHEL 环境中运行我的应用程序服务器(Karaf、Tomcat、Mongo 和 Zookeeper 各一个实例),并且经常看到(使用 free -m)我的总 12GB RAM 中近 8GM
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我对证书真的很陌生,发现很难实现我的想法。让我有一个用 openSSL 生成的自签名证书。为了使该证书受信任,我应该在 RHEL 中遵循哪些步骤? .pfx 和 .crt 在程序上有什么区别吗?您能否
我最近发现我的 C++ 程序在尝试从输入流重定向到字符串时在 Red Hat Linux 上发生核心转储。该程序提供了一个 PID,并尝试从/proc 中获取进程名称。代码如下: std::strin
我在 x86_64 机器上使用 RHEL 5.8: $ uname -r 2.6.18-308.1.1.el5 $ uname -m x86_64 $ 尝试将源代码交叉编译为 i386 兼容: CFL
我在 service script 之后写了一个服务脚本但是我发现没有守护进程命令,我无法谷歌如何安装它 最佳答案 来自 /usr/share/doc/initscripts-*/sysvinitfi
我是一名优秀的程序员,十分优秀!