This commit is contained in:
2024-11-29 16:33:46 +03:00
parent 01957b9fb3
commit b76aa24ae4
11 changed files with 46 additions and 27 deletions

20
.idea/workspace.xml generated
View File

@@ -8,17 +8,15 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Visualizer_2.exe" beforeDir="false" afterPath="$PROJECT_DIR$/Visualizer_2.exe" afterDir="false" /> <change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/AppendBugReportField.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/AppendBugReportField.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/Supervisor/Local/Linux/LinuxLocalTaskSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/Supervisor/Local/Linux/LinuxLocalTaskSupervisor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CheckedEmail.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/Supervisor/Remote/RemoteCompilationSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/Supervisor/Remote/RemoteCompilationSupervisor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/Email.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/Email.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/Supervisor/Remote/RemoteTaskSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/Supervisor/Remote/RemoteTaskSupervisor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishBugReport.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishBugReport.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/Supervisor/Remote/ServerRunSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/Supervisor/Remote/ServerRunSupervisor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishComponent.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishComponent.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/Supervisor/TaskSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/Supervisor/TaskSupervisor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/UpdateBugReportField.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/UpdateBugReportField.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/UserConnection.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/UserConnection.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/BugReport/BugReport.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/BugReport/BugReport.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforTestingPlanner.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Subscribes/SubsribersDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Subscribes/SubsribersDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingPlanner.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -10,7 +10,7 @@
"SMTPHost": "smtp.mail.ru", "SMTPHost": "smtp.mail.ru",
"SMTPPort": 465, "SMTPPort": 465,
"MailSocketPort": 465, "MailSocketPort": 465,
"collapseCredentials": true, "collapseCredentials": false,
"collapseFileGraphs": false, "collapseFileGraphs": false,
"collapseFileMessages": false, "collapseFileMessages": false,
"collapseProjectTrees": false, "collapseProjectTrees": false,
@@ -38,6 +38,6 @@
"EmailOnTestingProgress": true, "EmailOnTestingProgress": true,
"eraseTestingWorkspaces": true, "eraseTestingWorkspaces": true,
"lastMachineId": 13, "lastMachineId": 13,
"lastUserId": 24, "lastUserId": 34,
"lastCompilerId": 52 "lastCompilerId": 52
} }

View File

@@ -46,8 +46,8 @@ public abstract class LinuxLocalTaskSupervisor<T extends Task> extends LocalTask
@Override @Override
public void WaitForTask() throws Exception { public void WaitForTask() throws Exception {
if (isTaskActive()) { if (isTaskActive()) {
if (task.PID.isEmpty()) // if (task.PID.isEmpty())
throw new PassException("Ошибка при старте : идентификатор задачи не определен."); // throw new PassException("Ошибка при старте : идентификатор задачи не определен.");
task.StartDate = (new Date()).getTime(); task.StartDate = (new Date()).getTime();
pass.ShowMessage1("Задача активна, идентификатор " + Utils_.Brackets(task.PID)); pass.ShowMessage1("Задача активна, идентификатор " + Utils_.Brackets(task.PID));
RefreshProgress(); RefreshProgress();

View File

@@ -30,7 +30,7 @@ public class RemoteCompilationSupervisor extends RemoteTaskSupervisor<Compilatio
} }
@Override @Override
protected void StartTask() throws Exception { protected void StartTask() throws Exception {
task.PID = pass.user.connection.startShellProcess(getRemoteProject(), "PID", getStartCommand()); pass.user.connection.startShellProcess(getRemoteProject(), "PID", getStartCommand());
task.state = TaskState.Running; task.state = TaskState.Running;
} }
@Override @Override

View File

@@ -1,7 +1,9 @@
package _VisualDVM.GlobalData.Tasks.Supervisor.Remote; package _VisualDVM.GlobalData.Tasks.Supervisor.Remote;
import Common.CommonConstants; import Common.CommonConstants;
import Common.Passes.PassException;
import Common.Utils.Utils_; import Common.Utils.Utils_;
import _VisualDVM.Constants; import _VisualDVM.Constants;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.RemoteFile.RemoteFile; import _VisualDVM.GlobalData.RemoteFile.RemoteFile;
import _VisualDVM.GlobalData.Tasks.Supervisor.TaskSupervisor; import _VisualDVM.GlobalData.Tasks.Supervisor.TaskSupervisor;
import _VisualDVM.GlobalData.Tasks.Task; import _VisualDVM.GlobalData.Tasks.Task;
@@ -61,6 +63,16 @@ public abstract class RemoteTaskSupervisor<T extends Task> extends TaskSuperviso
} }
@Override @Override
protected void AbortTask() throws Exception { protected void AbortTask() throws Exception {
//1 прочитать пид
if (task.PID.isEmpty()) {
RemoteFile PID = getPID();
if (pass.user.connection.Exists(PID)) {
task.PID = pass.user.connection.readFromFile(PID).replace("\n", "").replace("\r", "");
Global.mainModule.getDb().Update(task);
} else {
throw new PassException("файл PID не найден");
}
}
pass.user.connection.Command("kill -2 " + task.PID); pass.user.connection.Command("kill -2 " + task.PID);
} }
@Override @Override

View File

@@ -18,8 +18,8 @@ public class ServerRunSupervisor extends RemoteTaskSupervisor<RunTask> {
String env = String.join(" ", MainModule_.instance.getDb().getTable(RunConfiguration.class).getUI().getCurrent().getEnvList()); String env = String.join(" ", MainModule_.instance.getDb().getTable(RunConfiguration.class).getUI().getCurrent().getEnvList());
if (!env.isEmpty()) res = env + " " + res; if (!env.isEmpty()) res = env + " " + res;
//-- //--
task.PID = pass.user.connection.startShellProcess(getRemoteProject(), "PID", // task.PID =
"ulimit -s unlimited", res); pass.user.connection.startShellProcess(getRemoteProject(), "PID", res);
task.state = TaskState.Running; task.state = TaskState.Running;
} }
@Override @Override

View File

@@ -114,10 +114,10 @@ public abstract class TaskSupervisor<T extends Task, P extends Pass> {
} }
public void WaitForTask() throws Exception { public void WaitForTask() throws Exception {
if (isTaskActive()) { if (isTaskActive()) {
if (task.PID.isEmpty()) // if (task.PID.isEmpty())
throw new PassException("Ошибка при старте : идентификатор задачи не определен."); // throw new PassException("Ошибка при старте : идентификатор задачи не определен.");
task.StartDate = (new Date()).getTime(); task.StartDate = (new Date()).getTime();
pass.ShowMessage1("Задача активна, идентификатор " + Utils_.Brackets(task.PID)); pass.ShowMessage1("Задача активна");//, идентификатор " + Utils_.Brackets(task.PID));
RefreshProgress(); RefreshProgress();
do { do {
Thread.sleep(getTaskCheckPeriod() * 1000); Thread.sleep(getTaskCheckPeriod() * 1000);

View File

@@ -61,7 +61,7 @@ public class Visualiser extends Component {
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html //http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
@Override @Override
public void GetVersionInfo() { public void GetVersionInfo() {
version = 1124; version = 1126;
String pattern = "MMM dd yyyy HH:mm:ss"; String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH); DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime()); date_text = df.format(getClassBuildTime());

View File

@@ -17,6 +17,7 @@ public class DVMCompilationTask extends DVMTask {
//-- //--
public DVMCompilationTask(DVMConfiguration configuration, DVMSettings dvmSettings, Group group, Test test, int kernels_in) { public DVMCompilationTask(DVMConfiguration configuration, DVMSettings dvmSettings, Group group, Test test, int kernels_in) {
super(configuration, group, test, checkFlags(dvmSettings.flags)); super(configuration, group, test, checkFlags(dvmSettings.flags));
maxtime = configuration.c_maxtime;
Vector<String> matrixes = dvmSettings.getMatrixes(test.max_dim); Vector<String> matrixes = dvmSettings.getMatrixes(test.max_dim);
String checkedEnvironments = checkEnvironments(dvmSettings.environments); String checkedEnvironments = checkEnvironments(dvmSettings.environments);
if (dvmSettings.flags.trim().equalsIgnoreCase("-s")) { if (dvmSettings.flags.trim().equalsIgnoreCase("-s")) {

View File

@@ -488,7 +488,7 @@ public class UserConnection {
Utils_.sleep(1000); Utils_.sleep(1000);
} }
} }
public String startShellProcess(RemoteFile directory, String outFileName, String... commands) throws Exception { public void startShellProcess(RemoteFile directory, String outFileName, String... commands) throws Exception {
Vector<String> commands_ = new Vector<>(); Vector<String> commands_ = new Vector<>();
commands_.add("cd " + Utils_.DQuotes(directory.full_name)); commands_.add("cd " + Utils_.DQuotes(directory.full_name));
for (int i = 0; i < commands.length; ++i) { for (int i = 0; i < commands.length; ++i) {
@@ -507,12 +507,20 @@ public class UserConnection {
RemoteFile outFile = new RemoteFile(directory, outFileName); RemoteFile outFile = new RemoteFile(directory, outFileName);
if (Exists(outFile)) if (Exists(outFile))
sftpChannel.rm(outFile.full_name); sftpChannel.rm(outFile.full_name);
System.out.println("connecting shell");
ShellConnect(); ShellConnect();
System.out.println("done");
System.out.println("sending start command...");
pin.write(("nohup " + start_command + " &\r\n").getBytes()); pin.write(("nohup " + start_command + " &\r\n").getBytes());
System.out.println("done");
System.out.println("waiting for out file creation...");
waitForFileCreation(outFile); waitForFileCreation(outFile);
waitForFileFree(outFile); System.out.println("done");
// waitForFileFree(outFile);
System.out.println("disconnecting...");
ShellDisconnect(); ShellDisconnect();
return readFromFile(outFile).replace("\n", "").replace("\r", ""); System.out.println("done");
// return readFromFile(outFile).replace("\n", "").replace("\r", "");
} }
//-- проверка существования рабочего пространства. //-- проверка существования рабочего пространства.
public void CheckUserInitialization(String email) throws Exception { public void CheckUserInitialization(String email) throws Exception {

View File

@@ -188,11 +188,11 @@ public class SapforTestingPlanner extends TestingPlanner<SapforPackage> {
} }
} }
Print("сравнение завершено"); Print("сравнение завершено");
testingPackage.description += "\nРазличий с эталоном: " + testingPackage.mismatchesCount; log.Writeln_("Различий с эталоном: " + testingPackage.mismatchesCount);
return; return;
} else { } else {
Print("сравнение с эталоном невозможно"); Print("сравнение с эталоном невозможно");
testingPackage.description += ("\nCравнение с эталоном невозможно:\n" + log.text); log.Writeln_("Cравнение с эталоном невозможно");
} }
} }
} }